Home » ワードマクロ・Word VBAの使い方 » セクション » Word VBAで現在のセクションを取得する-Selection.Sections(1)

Word VBAで現在のセクションを取得する-Selection.Sections(1)

動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2403(ビルド17425.20000クイック実行)ベータチャネル

「Word2007 VBA 現在のSection 取得」
「word vba 現在のセクションを取得」
といった検索キーワードで時折アクセスがあります。

この記事ではWord文書上でカーソルの置かれているセクションを表すSectionオブジェクトを取得するコードをご紹介しましょう。
Selection.Informationプロパティを使ってカーソル位置のセクション番号を取得するコードはご紹介済みです。

現在のセクションを取得するサンプルマクロ

Word文書の本文内にカーソルを置いた状態で以下のWordマクロを実行すると、カーソルの置かれているSectionが変数secに代入された状態で、中断します。

Sub 現在のセクションを取得する()
 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)

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

.