Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » Word VBAでCellオブジェクトのParentは?

Word VBAでCellオブジェクトのParentは?

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2201 ビルド14827.20198 Microsoft Store)

「vba tables Word Cell.Parent」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがあることに気が付きました。

Word VBAで、表のセルを表すCellオブジェクトの親オブジェクトが何なのかを調べていらしたのでしょうか。

簡単なSubプロシージャを実行して、ローカルウィンドウで確認しましょう。

Table.Cellメソッドで取得したCellのParent

拙著『Excel VBAユーザーのためのWord VBA入門(2)』の「10-1. Table.CellメソッドでCellを取得する」で解説している、

Tableオブジェクトに用意されているCellメソッドを使って取得した、CellオブジェクトのParentから確認しましょう。
表の存在するWord文書がアクティブな状態で、以下のSubプロシージャを実行してください。

Sub CellのParentを確認する__TableのCellメソッド経由の場合()
 Dim cel As Cell
 Set cel = ActiveDocument.Tables(1).Cell(1, 1)
 
 Dim obj As Object
 Set obj = cel.Parent
 Stop
End Sub

Stopステートメントで中断したら、VBEのメニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示して、変数objの型を確認です。

上図のとおり、TableオブジェクトのCellメソッドを使って取得したCellオブジェクトの場合、そのParentはTableオブジェクトです。

Rows(1).Cells(1)で取得したCellのParent

別の階層を辿ってCellオブジェクトを取得した場合も確認しましょう。

拙著の「13-3. Rowの特徴的なプロパティ」で解説している、

Row.Cellsプロパティを経由してCellを取得した場合です。

Sub CellのParentを確認する__RowsとCells経由の場合()
 Dim cel As Cell
 Set cel = ActiveDocument.Tables(1).Rows(1).Cells(1)
 
 Dim obj As Object
 Set obj = cel.Parent
 Stop
End Sub

この場合は、上図のとおり、DocumentオブジェクトがCell.Parentです。

Selection.Cells経由で取得したCellの場合

拙著「11-2. 選択されているセルの取得」で解説している、

SelectionオブジェクトのCellsプロパティを経由して取得したCellも見ておきましょう。

アクティブ文書の表内にカーソルを置いた状態で、以下のSubプロシージャを実行してください。

Sub CellのParentを確認する__SelectionとCells経由の場合()
 Dim cel As Cell
 Set cel = Selection.Cells(1)

 Dim obj As Object
 Set obj = cel.Parent
 Stop
End Sub

この場合も上図のとおり、DocumentオブジェクトがCell.Parentです。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » Word VBAでCellオブジェクトのParentは?

「表・テーブル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.