【Wordマクロ】カーソル位置の単語をクリップボードに保存(その2) | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

先日のマクロ「【Wordマクロ】カーソル位置の単語をクリップボードに保存 」を改造してみました。

このマクロを使ってみて気づいたのですが、どうせなら単語範囲を拡大できたほうがいいかなと感じました。

1単語だけで検索することもありますが、2単語以上の複合語を検索することもよくあります。


▼このマクロでできること

1回実行すると、カーソルが置かれている単語が選択され、クリップボードに保存されます。

さらに実行すると、末尾方向に1単語だけ選択範囲が拡張され、選択範囲がクリップボードに保存されます。


(実行前)




(実行後)




(さらに実行後)





▼マクロの解説

青文字部分で、最初のカーソル位置(選択範囲)を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マクロ】カーソル位置の単語をクリップボードに保存