매크로를 사용하여이를 수행하려면 문서의 각 단락을 확인하고 "머리글"스타일인지 확인해야합니다. 그렇다면 첫 번째 탭 중단 지점의 값을 선택하여 다음 단락의 들여 쓰기로 설정하십시오.
갱신 1 : 코드의 이전 버전은 아래의 Document
수준의 첫 번째 탭 정지에 단락을 설정하고 정확하게 Heading
스타일의 탭 위치 설정을 잡아하지 않았다. 아래의 코드 업데이트는 각 Heading
들여 쓰기 탭 스톱을 정확하게 결정합니다.
UPDATE2 : I이 첫 번째 문서에 도시에 사용 된 샘플 텍스트 원본 :
![enter image description here](https://i.stack.imgur.com/42TXx.jpg)
자동 항 호의 탭 레벨로 제 라인 들여 쓰기를 수행하는 코드 인
첫 번째 예에서 원래 Sub
:
Option Explicit
Sub SetParaIndents1()
Dim myDoc As Document
Set myDoc = ActiveDocument
Dim para As Paragraph
Dim firstIndent As Double 'value in "points"
For Each para In myDoc.Paragraphs
If para.Style Like "Heading*" Then
firstIndent = myDoc.Styles(para.Style).ParagraphFormat.LeftIndent
Debug.Print para.Style & " first tab stop at " & _
firstIndent & " points"
Else
Debug.Print "paragraph first line indent set from " & _
para.FirstLineIndent & " to " & _
firstIndent
para.FirstLineIndent = firstIndent
End If
Next para
'--- needed to show the changes just made
Application.ScreenRefresh
End Sub
결과는 L 보이는 당신은 제목 스타일로 정렬 들여 쓰기 전체 단락을 원하는 경우에 ![enter image description here](https://i.stack.imgur.com/RHrwT.jpg)
이 코드는이에 수정 :
Option Explicit
Sub SetParaIndents2()
Dim myDoc As Document
Set myDoc = ActiveDocument
Dim para As Paragraph
For Each para In myDoc.Paragraphs
If para.Style Like "Heading*" Then
'--- do nothing
Else
para.Indent
End If
Next para
'--- needed to show the changes just made
Application.ScreenRefresh
End Sub
그리고 결과 텍스트 이케이 (레드 라인 정렬을 보여 수동으로 추가) 다음과 같이 표시됩니다. ![enter image description here](https://i.stack.imgur.com/6to7d.jpg)
제안 해 주셔서 감사합니다. 귀하의 코드를 실행하고 다음 단락의 첫 번째 줄에 머리글 (약 2 인치 정도)의 텍스트를 넘어 첫 줄을 들여 쓰지 만 나머지 단락은 그대로 둡니다. 올바른 들여 쓰기를 설정하고 전체 단락에 영향을 미칠 수 있습니까? – Absinthe
'단락'을 '들여 쓰기'로 설정하면 앞의 제목 스타일의 탭 중단 지점이 자동으로 선택됩니다. 예제에서 사용 된 스타일은 기본 'Heading 1', 'Heading 2'및 'Heading 3'입니다. – PeterT
이것은 나에게 효과가 없었지만 나는 당신의 설명보다는 내가받은 문서의 끔찍한 상태 때문에 그것을 추측하고있다. 너무 철저하게되어 줘서 고마워. 많이 배웠어. 모든 단락을 반복하고 맞춤 스타일을 통해 헤더와 일치하도록 들여 쓰기를 수행하여이를 해결했습니다. – Absinthe