このマクロを使ってみて気づいたのですが、どうせなら単語範囲を拡大できたほうがいいかなと感じました。
1単語だけで検索することもありますが、2単語以上の複合語を検索することもよくあります。
▼このマクロでできること
1回実行すると、カーソルが置かれている単語が選択され、クリップボードに保存されます。
さらに実行すると、末尾方向に1単語だけ選択範囲が拡張され、選択範囲がクリップボードに保存されます。
(実行前)
![](https://stat.ameba.jp/user_images/20150817/09/gidgeerock/34/66/p/t02200021_0572005413398364281.png?caw=800)
(実行後)
![](https://stat.ameba.jp/user_images/20150817/09/gidgeerock/bf/f8/p/t02200023_0569005913398364282.png?caw=800)
(さらに実行後)
![](https://stat.ameba.jp/user_images/20150817/09/gidgeerock/b5/71/p/t02200021_0571005513398364283.png?caw=800)
▼マクロの解説
青文字部分で、最初のカーソル位置(選択範囲)をmyRange(Rangeオブジェクトのオブジェクト変数)に保存します。
赤文字部分で、前回のマクロ「【Wordマクロ】カーソル位置の単語をクリップボードに保存 」と同様に、カーソルを単語の範囲に拡張してクリップボードに保存します。
紫色部分で、Ifステートメントにより拡張した範囲が、拡張前の範囲(myRangeの範囲)と同じであるかを比較しています。同じ場合(=選択範囲が広がっていない場合)には、末尾方向に単語1つ分選択範囲を拡張します。
▼マクロ
Sub カーソル位置の単語をクリップボードに保存2()
Dim myRange As Range
Set myRange = Selection.Range
With Selection
.Expand unit:=wdWord
.Copy
End With
If myRange = Selection.Range Then
With Selection
.MoveEnd unit:=wdWord, Count:=1
.Copy
End With
End If
Set myRange = Nothing
End Sub
▼関連記事
【Wordマクロ】カーソル位置の単語をクリップボードに保存