【Word VBA】入れ子の表のスタイルを設定するWordマクロ

2015年3月16日

表のあるセル中に挿入された表を「入れ子の表」と呼びます。英語では、nested table です。

最近のDTPのお仕事で、入れ子の表に対して個別にプロパティを設定する場面がありました。

今回の記事では、入れ子の表のスタイルを設定する方法を紹介します。

このマクロでできること

以下のように、2つの表があります。それぞれの表に入れ子の表があります。

マクロを実行すると、大元の表はオレンジ色のスタイルが設定され、入れ子の表には青色のスタイルが設定されます。

マクロの解説

15行目で大元となる表のスタイルを設定しています。

27行目で入れ子の表のスタイルを設定しています。

入れ子の表は、Table オブジェクト内のTable コレクションで取得できます。

入れ子の表がない場合にはTable コレクションがないので、青色の処理はスキップされます。

入れ子の表の中にさらに入れ子の表がある場合もあるので、それを30行目の再帰呼び出し(Weblio辞書の説明)で処理しました。

マクロ


Sub 表のスタイル設定()
 
 Dim myTable As Table
 
 For Each myTable In ActiveDocument.Tables
  Call ProcessTable(myTable)
 Next
 
End Sub

Private Sub ProcessTable(myTable As Table)

 Dim myNestedTable As Table
 
 myTable.Style = "表 (オレンジ) 1"
  
 For Each myNestedTable In myTable.Tables
  Call ProcessNestedTable(myNestedTable)
 Next

End Sub

Private Sub ProcessNestedTable(myTable As Table)

 Dim myNestedTable As Table
 
 myTable.Style = "表 (青) 8"
  
 For Each myNestedTable In myTable.Tables
  Call ProcessNestedTable(myNestedTable)
 Next

End Sub

関連記事

【Wordマクロ】表中の結合・分割セルの有無を判定する

【Wordマクロ】表中の結合されたセルを着色する

-コード
-, ,