「word vba 表のオプション セルの余白」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがあるのに気づきました。
表のセル内余白を設定するWordマクロ・Word VBA(Visual Basic for Applications)のコードを探している方による検索でしょう。
手作業で表のセル内余白を設定するには
表の中のセル内余白を手作業で設定するには、まず[表のプロパティ]ダイアログを表示してから[オプション]ボタンをクリックして、
[表のオプション]ダイアログを表示して[既定のセルの余白]欄で変更する、
という手間が必要ですから、マクロが欲しいという気持ちはとても納得できるものです。
特に複数の表が存在しているときに、まとめてセル内余白を変更するマクロというのは活躍の場がありそうです。
マクロ記録すると
マクロ記録を行ってみると、以下のようなコードが作られます。
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
上記のコードは、一つの表のセル内余白を設定する操作を行って作られたものですが、このコードを修正すれば、複数の表のセル内余白を一気に変更するマクロができます。
選択されている表のセル内余白を設定するサンプルマクロ
以下のようなマクロにすれば、複数の表が選択されていても、選択されている全ての表のセル内余白を設定できます。
Dim tbl As Table
For Each tbl In Selection.Tables
With tbl
.TopPadding = MillimetersToPoints(5)
.BottomPadding = MillimetersToPoints(5)
.LeftPadding = MillimetersToPoints(5)
.RightPadding = MillimetersToPoints(5)
Next
End Sub
表を選択した状態で上記のマクロを実行すると、セル内余白がすべて5mmに設定されます。
選択されているすべての表に対してループを回して、
For Each tbl In Selection.Tables
上の余白・TopPadding
下の余白・BottomPadding
左の余白・LeftPadding
右の余白・RightPadding
をそれぞれ設定しています。
Table.○○Paddingが、セルの余白を設定するプロパティです。4方向の余白を個別に指定することができるようになっています。
Table.○○Paddingプロパティには、単位をポイントで数値を指定する必要があるので、MillimetersToPoints関数で、ポイントに変換しています。(MillimetersToPoints関数の引数で指定されている数値の単位はmmです。)
アクティブ文書のすべての表のセル内余白を設定するサンプルマクロ
ループを回す対象を、アクティブ文書内のすべての表にすれば、アクティブな文書上のすべての表のセル内余白を一括変更するマクロになります。
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
- Newer:シートをコピーして名前を変更するExcelマクロ
- Older:条件に合致した行を削除するExcelマクロ
Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表のセル内余白をWord VBAで設定する