Home » ワードマクロ・Word VBAの使い方 » Selection » 選択範囲の文字列をWord VBAで取得する

選択範囲の文字列をWord VBAで取得する

対象:Word2007, Word2010, Word2013

「ワード マクロ 選択文章を格納」
「word vba 選択データを取り出す」
「word vba 選択 文字列 取得」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

選択されている文字列・選択範囲の文字列を取得する、Word VBAのコードを探している方による検索です。

選択範囲の文字列を取得するサンプルマクロ

「ワード マクロ 選択文章を格納」
「word vba 選択データを取り出す」
「word vba 選択 文字列 取得」
という検索キーワードでは、選択されている文字列を取得して、どうしたいのかがわかりませんので、シンプルなマクロをご紹介しておきます。

Sub 選択範囲の文字列を取得する()
 Dim txt As String
 txt = Selection.Text
 MsgBox txt
End Sub

上記のWordマクロを実行すると、Word文書上で選択されている文字列が、メッセージボックスに表示されます。

サンプルマクロの解説

文字列型の変数txtに、選択されている文字列を格納して、

txt = Selection.Text

メッセージボックスで表示しています。

MsgBox txt

「Selection.Text」が選択されている文字列を取得するオブジェクト式です。

Selectionプロパティを使って、選択範囲を表すWordのSelectionオブジェクトを取得して、

選択されている文字列を取得するWord VBAのコード

Selectionオブジェクトに用意されているTextプロパティで、選択されている文字列を取得するコードです。

選択されている文字列を取得するWord VBAのコード

範囲が選択されているときだけ処理したい場合

上記のマクロでは、文字列が選択されておらず、カーソルが置かれているときにはカーソルの直後の1文字が取得されます。

これを選択範囲の文字列のみを取得したい場合には、以下のようなIf文を入れてください。

Sub 選択範囲の文字列を取得する()
 If Selection.Start <> Selection.End Then
  Dim txt As String
  txt = Selection.Text
  MsgBox txt
 End If
End Sub

文字列範囲が選択されていない場合には、Selection.StartプロパティとSelection.Endプロパティは同じ値になります。これを利用して、

If Selection.Start <> Selection.End Then

と、Selection.StartプロパティとSelection.Endプロパティが同じではない場合、という条件分岐を行っています。

最終更新日時:2022-12-21 12:00

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Selection » 選択範囲の文字列をWord VBAで取得する

「Selection」の記事一覧

検索


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

.