「word vba 表の選択中の行番号取得」
といった検索キーワードでアクセスがありました。
表のセルが選択されているときに、そのセルが表の何行目に存在しているのかをWord VBAで調べるには、どのようなコードを書けばいいのか探していた方による検索でしょうか。
選択セルの表内行番号・列番号を取得するサンプル
以下のSubプロシージャを実行すると、選択されているセルが、表の何行目・何列目にあるかがメッセージボックスに表示されます。
With Selection
If Not .Information(wdWithInTable) Then
MsgBox "表を選択した状態で実行してください。"
Exit Sub
End If MsgBox "選択セルは表の、" & _
.Information(wdStartOfRangeRowNumber) & "行目" & _
.Information(wdStartOfRangeColumnNumber) & "列目 です。"
End With
End Sub
サンプルで行っている処理について
選択されているセルの行番号・列番号を取得しているのは、後半の
With Selection
.Information(wdStartOfRangeRowNumber) & "行目" & _
.Information(wdStartOfRangeColumnNumber) & "列目 です。"
です。
表選択時に、Selectionオブジェクトに用意されているInformationプロパティの引数に、
WdInformation列挙に定義されている定数wdStartOfRangeRowNumberを指定すれば、
表の中で何行目なのかを、
定数wdStartOfRangeColumnNumberを指定すれば、
列番号を、それぞれ取得できます。
表内にカーソルがないときに上述の、
Selection.Information(wdStartOfRangeRowNumber)
Selection.Information(wdStartOfRangeColumnNumber)
が実行されると実行時エラーが発生してしまいますから、それを避けるために、事前にカーソルが表内にあるかを確認しています。
With Selection
If Not .Information(wdWithInTable) Then
MsgBox "表を選択した状態で実行してください。"
Exit Sub
セル範囲が選択されているときの最終行番号・列番号を取得する
wdStartOfRangeRowNumber・wdStartOfRangeColumnNumberといった定数名から推測できるとおり、セル範囲が選択されている場合には最初のセルの行番号・列番号が取得できます。
選択しているセル範囲の最終行番号・最終列番号を取得したい場合は、定数wdEndOfRangeRowNumber・wdEndOfRangeColumnNumberを使った、
Selection.Information(wdEndOfRangeRowNumber)
Selection.Information(wdEndOfRangeColumnNumber)
です。
Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » Word VBAで選択セルの表内行番号・列番号を取得-Selection.Information