「ワード マクロ 選択文章を格納」
「word vba 選択データを取り出す」
「word vba 選択 文字列 取得」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
選択されている文字列・選択範囲の文字列を取得する、Word VBAのコードを探している方による検索です。
選択範囲の文字列を取得するサンプルマクロ
「ワード マクロ 選択文章を格納」
「word vba 選択データを取り出す」
「word vba 選択 文字列 取得」
という検索キーワードでは、選択されている文字列を取得して、どうしたいのかがわかりませんので、シンプルなマクロをご紹介しておきます。
Dim txt As String
txt = Selection.Text
MsgBox txt
End Sub
上記のWordマクロを実行すると、Word文書上で選択されている文字列が、メッセージボックスに表示されます。
サンプルマクロの解説
文字列型の変数txtに、選択されている文字列を格納して、
txt = Selection.Text
メッセージボックスで表示しています。
MsgBox txt
「Selection.Text」が選択されている文字列を取得するオブジェクト式です。
Selectionプロパティを使って、選択範囲を表すWordのSelectionオブジェクトを取得して、
Selectionオブジェクトに用意されているTextプロパティで、選択されている文字列を取得するコードです。
範囲が選択されているときだけ処理したい場合
上記のマクロでは、文字列が選択されておらず、カーソルが置かれているときにはカーソルの直後の1文字が取得されます。
これを選択範囲の文字列のみを取得したい場合には、以下のようなIf文を入れてください。
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で取得する