最近作成しているマクロで、表内のカーソル位置(又は、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
▼関連記事
【Wordマクロ】表中の結合・分割セルの有無を判定する
【Wordマクロ】表中の結合されたセルを着色する
【Wordマクロ】入れ子の表のスタイルを設定する
↧
【Wordマクロ】表の特定の行の列数を調べる
↧