【Word VBA】表の特定の行の列数を調べるWordマクロ

2015年4月6日

最近作成しているマクロで、表内のカーソル位置(又は、Rangeオブジェクトの位置)の行の列数を判定する必要がありました。

そのときに作ったマクロです。翻訳では使えません(笑)。

このマクロでできること

表内にカーソルを置いた場合、その行の列数を調べてメッセージボックスで表示します。

表

表

マクロの解説

Information プロパティを用いて、カーソルがある位置の行数を調べます。

wdEndOfRangeRowNumber を用いているので、選択範囲の一番末尾の行数を取得します。

なので、以下のようになります。

表

カーソル位置の表は、Tables(1) とすると指定できます。

行の列数もInformationプロパティを用います。

表の行のRangeオブジェクトを指定して、Information(wdMaximumNumberOfColumns) として取得します。

これ以外にも、行のRangeオブジェクト内にセルがいくつあるのか数えれば、列数になります。

コメントアウトしてありますが、同じ結果が得られます。

マクロ


Sub 行の列数を調べる()

 Dim myRange As Range
 Dim myRow As Integer
 Dim myMaxColumn As Integer
 Dim myColumn As Integer
 
 If Selection.Information(wdWithInTable) = True Then
  Set myRange = Selection.Range
  myRow = myRange.Information(wdEndOfRangeRowNumber)
  With myRange.Tables(1)
   myMaxColumn = .Columns.Count
   myColumn = .Rows(myRow).Range.Information(wdMaximumNumberOfColumns)
'   myColumn = .Rows(myRow).Cells.Count
  End With
  
  MsgBox "表の列数:" & myMaxColumn & vbCr & _
      "行の列数:" & myColumn
 
 End If

End Sub

-コード
-,