「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プロシージャを実行してください。
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を取得した場合です。
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プロシージャを実行してください。
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は?