Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAで選択範囲を段落に拡張する

Word VBAで選択範囲を段落に拡張する

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

検索キーワード「Selection.MoveEndUntil Cset 段落を選択 word マクロ」をきっかけに、

Selection.Paragraphs(1).Range.Select

というWord VBAのコードで、カーソルのある段落を選択できることをご紹介しました。

この「Selection.Paragraphs(1).Range.Select」では、希望どおりの挙動とならない場合もあるかもしれません。

たとえば、

上図のように複数の段落にまたがって選択されているときに、下図のような状態になることを期待して、

「Selection.Paragraphs(1).Range.Select」を実行した場合、下図のように1つ目の段落のみが選択されてしまいます。

選択範囲を段落に拡張するサンプルマクロ

複数の段落にまたがって選択されているときに、選択範囲を段落に拡張したいのであれば、以下のようなWordマクロです。

Sub 選択範囲を段落に拡張する()
 Selection.MoveStart wdParagraph, -1
 Selection.MoveEnd wdParagraph, 1
End Sub

拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の、「7-6. カーソル位置や選択範囲を変更するメソッド」で解説しているMove〇〇系メソッドを使ったマクロです。

サンプルマクロで行っている処理

上記のサンプルマクロでは、以下のような処理を行っています。

「Selection.MoveStart wdParagraph, -1」の処理内容

まず、選択範囲を表すSelectionオブジェクトのMoveStartメソッドの

第1引数にWdUnits列挙型に定義されている定数wdParagraphを、

第2引数に「-1」をそれぞれ指定することで、選択範囲の先頭が段落の先頭に移動します。

下図のように選択されているときに、

Selection.MoveStart wdParagraph, -1

を実行すると、下図のような状態になるわけです。

「Selection.MoveEnd wdParagraph, 1」の処理内容

つづいて、SelectionオブジェクトのMoveEndメソッドの

第1引数に同じく定数wdParagraphを指定し、第2引数に「1」を指定すると、選択範囲の末尾が段落の最後に移動します。

先ほどのつづきで

Selection.MoveEnd wdParagraph, 1

を実行すると、下図のような状態になるわけです。

最終更新日時:2022-10-07 16:47

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAで選択範囲を段落に拡張する

「Selection」の記事一覧

検索


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

.