「word vba 表 行の最初のセル」
といった検索キーワードでアクセスがあることに気が付きました。
Word VBAで、表のいずれかの行の最初のセルを取得するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。
表の行の先頭セルを取得するサンプルマクロ
表の存在するWord文書がアクティブな状態で、以下のWordマクロを実行すると、1つ目の表の1行目の最初のセルが選択され、そのセル内の文字列がメッセージボックスに表示されます。
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
.Select
MsgBox Left(.Range.Text, Len(.Range.Text) - 2)
End With
End Sub
サンプルマクロで行っている処理
拙著『Excel VBAユーザーのWord VBA入門(2)』でも解説しているプロパティ・メソッド等を使ったコードです。
ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)の意味
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
の部分は、Itemメソッドを省略して
With ActiveDocument.Tables(1).Rows(1).Cells(1)
と書いてもOKですが、一度はしっかりと読み解いておきましょう。
グローバルメンバーのActiveDocumentプロパティを使って、
アクティブなWord文書を表すDocumentオブジェクトを取得し、
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
DocumentオブジェクトのTablesプロパティを使って、
アクティブな文書内のすべての表を表すTablesコレクションを取得し、
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
TablesコレクションのItemメソッドを使って、
1つ目の表を表すTableオブジェクトを取得し、
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
TableオブジェクトのRowsプロパティを使って、
1つ目の表のすべての行を表すRowsコレクションを取得し、
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
RowsコレクションのItemメソッドを使って、
1つ目の表の1行目を表すRowオブジェクトを取得し、
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
RowオブジェクトのCellsプロパティを使って、
1つ目の表の1行目のすべてのセルを表すCellsコレクションを取得し、
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
CellsコレクションのItemメソッドを使って、
1つ目の表の1行目の1つ目のセルを表すCellオブジェクトを取得しています。
With ActiveDocument.Tables.Item(1).Rows.Item(1).Cells.Item(1)
Left(.Range.Text, Len(.Range.Text) - 2)の意味
セル内文字列をメッセージボックスに表示している
MsgBox Left(.Range.Text, Len(.Range.Text) - 2)
の部分は、拙著の「10-3. セル内の文字列を取得する」でも解説しています。
セルを表すCellオブジェクトからRangeオブジェクトを取得し、末尾の2文字(セル内の段落記号とセル末尾を示す制御文字)を削除するために、VBAのLeft関数を使っています。
最終更新日時:2022-06-29 14:58
Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表の行の先頭セルをWord VBAで取得する