最近作成しているマクロで、表内のカーソル位置(又は、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