【Word VBA】イテレーション(For Each)によるWord文章中のテーブル情報取得サンプル(表全体、列単位、行単位)

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

コメント

タイトルとURLをコピーしました