NSDNの参考情報 より
前々から、Wordのテーブル情報をイテレーション(For Each)で取得できないかと調べていたのだが、ようやくわかってきた。
ExcelでRangeをつかったイテレーション(For Each)イメージをWordで実現するには、Cellsオブジェクトがポイントになる。
以下がサンプル。実用的と思うのは、テーブル全体 もしくは 列単位 で情報が取得できれば、よいかな。
‘この例では、テーブル全体のすべての情報を取得する。
Sub テーブル情報の取得_全体()
Dim t As Table
Set t = Me.Tables(1)
Dim c As Cell
For Each c In t.Range.Cells
Debug.Print c.Range.Text
Next c
End Sub
‘この例では、テーブル全体にたいして行(例では2行目)の情報を取得する。
Sub テーブル情報の取得_行単位()
Dim t As Table
Set t = Me.Tables(1)
Dim c As Cell
For Each c In t.Columns(2).Cells
Debug.Print c.Range.Text
Next c
End Sub
‘この例では、テーブル全体にたいして行(例では3行目)の情報を取得する。
Sub テーブル情報の取得_列単位()
Dim t As Table
Set t = Me.Tables(1)
Dim c As Cell
For Each c In t.Rows(3).Cells
Debug.Print c.Range.Text
Next c
End Sub
コメント