Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表のセル内余白をWord VBAで設定する

表のセル内余白をWord VBAで設定する

対象:Word2007, Word2010, Word2013

「word vba 表のオプション セルの余白」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがあるのに気づきました。

表のセル内余白を設定するWordマクロ・Word VBA(Visual Basic for Applications)のコードを探している方による検索でしょう。

手作業で表のセル内余白を設定するには

表の中のセル内余白を手作業で設定するには、まず[表のプロパティ]ダイアログを表示してから[オプション]ボタンをクリックして、

表のセル内余白を設定するWordマクロ

[表のオプション]ダイアログを表示して[既定のセルの余白]欄で変更する、

表のセル内余白を設定するWordマクロ

という手間が必要ですから、マクロが欲しいという気持ちはとても納得できるものです。

特に複数の表が存在しているときに、まとめてセル内余白を変更するマクロというのは活躍の場がありそうです。

マクロ記録すると

マクロ記録を行ってみると、以下のようなコードが作られます。

Sub SampleMacro()
 With Selection.Tables(1)
  .TopPadding = MillimetersToPoints(5)
  .BottomPadding = MillimetersToPoints(5)
  .LeftPadding = MillimetersToPoints(5)
  .RightPadding = MillimetersToPoints(5)
  .Spacing = 0
  .AllowPageBreaks = True
  .AllowAutoFit = True
 End With
End Sub

上記のコードは、一つの表のセル内余白を設定する操作を行って作られたものですが、このコードを修正すれば、複数の表のセル内余白を一気に変更するマクロができます。

選択されている表のセル内余白を設定するサンプルマクロ

以下のようなマクロにすれば、複数の表が選択されていても、選択されている全ての表のセル内余白を設定できます。

Sub 選択されている表のセル内余白を設定する()
 Dim tbl As Table
 For Each tbl In Selection.Tables
  With tbl

   .TopPadding = MillimetersToPoints(5)
   .BottomPadding = MillimetersToPoints(5)
   .LeftPadding = MillimetersToPoints(5)
   .RightPadding = MillimetersToPoints(5)

  End With
 Next
End Sub

表を選択した状態で上記のマクロを実行すると、セル内余白がすべて5mmに設定されます。

選択されているすべての表に対してループを回して、

For Each tbl In Selection.Tables

上の余白・TopPadding
下の余白・BottomPadding
左の余白・LeftPadding
右の余白・RightPadding
をそれぞれ設定しています。

Table.○○Paddingが、セルの余白を設定するプロパティです。4方向の余白を個別に指定することができるようになっています。

Table.○○Paddingプロパティには、単位をポイントで数値を指定する必要があるので、MillimetersToPoints関数で、ポイントに変換しています。(MillimetersToPoints関数の引数で指定されている数値の単位はmmです。)

アクティブ文書のすべての表のセル内余白を設定するサンプルマクロ

ループを回す対象を、アクティブ文書内のすべての表にすれば、アクティブな文書上のすべての表のセル内余白を一括変更するマクロになります。

Sub 文書内のすべての表のセル内余白を設定する()
 Dim tbl As Table
 For Each tbl In ActiveDocument.Tables
  With tbl

   .TopPadding = MillimetersToPoints(5)
   .BottomPadding = MillimetersToPoints(5)
   .LeftPadding = MillimetersToPoints(5)
   .RightPadding = MillimetersToPoints(5)
 
  End With
 Next
End Sub

先の、選択されている表のセル内余白を変更するマクロは、

For Each tbl In Selection.Tables

というループでしたが、全文書内の表にする場合は、上記のとおり、

For Each tbl In ActiveDocument.Tables

とすればOKです。

最終更新日時:2022-07-27 11:40

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表のセル内余白をWord VBAで設定する

「表・テーブル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.