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

2015年1月27日

Wordマクロは、表を処理するのはあまり得意ではないようです。

セルが結合されたり分割されたりすると、行や列の挿入でエラーになることがあります。

そこで、表に結合されたセルや分割されたセルがあるのかないのかを判定するマクロを紹介します。

なお、セル自体には、分割や結合の状態を示すプロパティがありません。

よって、どのセルがどの方向に結合・分割されているのかを調べるためには、別途プログラムを書いて細かい判定をしなければなりません。

このマクロでできること

文中のすべての表に対して、結合や分割されたセルがある場合に、表の背景を黄色にします。

実行すると、以下のように着色されます。

マクロの解説

TableオブジェクトのUniform プロパティを用いて判定します。

表に結合や分割されたセルがある場合、Falseの値を返します。

マクロ


Sub 表のセルが分割か結合されている場合にマーキングする()

 Dim myTable As Table
 
 For Each myTable In ActiveDocument.Tables
  If myTable.Uniform = False Then
   myTable.Shading.BackgroundPatternColorIndex = wdYellow
  End If
 Next

End Sub

参考記事

How do I detect a Word table with (horizontally) merged cells?

Check for merged cells with VBA

Table Cell Data Add-in (Word 2003)

-コード
-, , , ,