【Word VBA】左右の余白を調整するWordマクロ(その3)

2012年1月4日

左右の余白を調整するマクロ(その2) の続きです。

余白の調整をセクション毎に行います。

このマクロで出来ること

複数のセクションがあり、それぞれに異なる余白を設定してある場合でも、マクロで一括で余白の増減を実行できます。

マクロの解説

セクション毎に余白の調整をしています。

For... Next ステートメントで、現在の文書中のセクションのそれぞれに対して処理をしています。

14行目~28行目で、余白をそれ以上増やせない・減らせない場合のエラーの出現を検出して、メッセージを表示しています。

エラーがない場合には、Errはゼロになるので、その場合には何も処理をしていません。

なお、セクション毎に処理をするだけならば、以下のような記述も可能ですよね。

1
2
3
4
5
6
7
8
9
Dim mySec As Section
 
For Each mySec In ActiveDocument.Sections
 With mySec.PageSetup
  .LeftMargin = .LeftMargin + 2
  .RightMargin = .RightMargin + 2
 End With</span>
 ・・・エラー処理・・・
Next

この場合だと、エラーが発生した場合に何番目のセクションで起こったのかを再度計算する必要があるので、面倒だと思い、今回の記述にしました。

余白の増減の調整は、+2 の部分を変更してください。

マクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub 左右の余白の増加_セクション毎()
 
 Dim i As Integer
 
 On Error Resume Next
 
 With ActiveDocument
  For i = 1 To .Sections.Count
   With .Sections(i).PageSetup
    .LeftMargin = .LeftMargin + 2
    .RightMargin = .RightMargin + 2
   End With
 
   Select Case Err.Number
    Case 5505
     MsgBox i & "番目のセクション:余白を増やせません。", _
      vbExclamation, "お知らせ"
     Err.Clear
    Case 5149
     MsgBox i & "番目のセクション:余白を減らせません。", _
      vbExclamation, "お知らせ"
     Err.Clear
    Case 0
 
    Case Else
     MsgBox Err.Description
     Err.Clear
   End Select
 
  Next i
 End With
 
End Sub

▼関連記事
左右の余白を調整するマクロ

左右の余白を調整するマクロ(その2)

マクロコードの登録方法

ツールバーのボタン登録

-コード
-,

S