「Word2007 VBA 現在のSection 取得」
「word vba 現在のセクションを取得」
といった検索キーワードで時折アクセスがあります。
この記事ではWord文書上でカーソルの置かれているセクションを表すSectionオブジェクトを取得するコードをご紹介しましょう。
Selection.Informationプロパティを使ってカーソル位置のセクション番号を取得するコードはご紹介済みです。
現在のセクションを取得するサンプルマクロ
Word文書の本文内にカーソルを置いた状態で以下のWordマクロを実行すると、カーソルの置かれているSectionが変数secに代入された状態で、中断します。
Dim sec As Section
Set sec = Selection.Sections(1)
Stop
End Sub
中断したら、VBE(Visual Basic Editor)のアクセスキー[Alt]→[V]→[S]などを使ってローカルウィンドウを表示すると、下図のようにSectionを取得できている様子を確認できます。
サンプルマクロで使用しているオブジェクト式
上記サンプルマクロで使用している、
Set sec = Selection.Sections(1)
の右辺、カーソル位置のSectionを取得するオブジェクト式「Selection.Sections(1)」の意味は、以下のとおりです。
先頭の「Section」は、拙著『』の[7-1. Selectionオブジェクトとは]でも解説している、Word VBAのグローバルメンバーであるSectionプロパティです。
つづく「.Sections」は、SelectionオブジェクトのSectionsプロパティです。
Selection.Sectionsプロパティの戻り値は、Sectionsコレクションです。
Selection.Sectionsプロパティで取得したSelectionsコレクションの1つ目の要素であるSelectionオブジェクトを取得しているのが「.Sections」の後ろの「(1)」です。
「.Item」を省略せずに書くなら、
Set sec = Selection.Sections.Item(1)
です。
コレクションから要素オブジェクトを取得するItemメソッドは既定メンバーになっているため、省略するのが一般的です。
最終更新日時:2024-04-02 23:31
Home » ワードマクロ・Word VBAの使い方 » セクション » Word VBAで現在のセクションを取得する-Selection.Sections(1)