【Word VBA】記録したカーソル位置に文字列を移動するWordマクロ

2015年1月19日

以前の記事で「【コード】カーソル位置を記録するWordマクロ」を紹介しました。

このマクロだけだと目的の位置に戻るだけなのですが、今回紹介するマクロを利用すれば、選択されている文字列を記録したカーソル位置に移動させることができます。

上書き翻訳(置き換え翻訳)での文字列の移動で便利です。

このマクロでできること

以前紹介した「【コード】カーソル位置を記録するWordマクロ」でまずカーソル位置を記録します。

その後、文字列を選択した状態でこのマクロを実行します。

すると、選択されている文字列が、記録したカーソル位置の先頭側に移動します。記録されているカーソル位置が文字列を選択していたとしても、その部分に文字列を重ねることはありません。

マクロの解説

【コード】カーソル位置を記録するWordマクロ」と同じモジュールに今回のマクロを貼り付けてください。

If Selection.Type <> wdSelectionIP Then にて、文字列が選択されているのかどうかを判定します。

文字列が選択されている場合には、選択されている文字列を移動させます。

文字列が選択されていない場合にはカーソルだけ移動させます。

マクロ


Sub カーソル位置_貼り付け()

 Dim myStart As Long
 Dim myRange As Range '位置を記憶
 
 If myPosRange Is Nothing Then
  MsgBox "移動先が指定されていません。"
  Exit Sub
 End If
 
 Set myRange = Selection.Range
 myStart = myPosRange.Start
 
 With Selection
  If .Type <> wdSelectionIP Then
   .Copy
   .SetRange Start:=myStart, End:=myStart
   .Paste
   .Start = myStart
   myRange.Text = ""
  Else
   .SetRange Start:=myStart, End:=myStart
  End If
 End With
 
 Set myPosRange = Nothing
 Set myRange = Nothing
 
End Sub

関連記事

【コード】カーソル位置を記録するWordマクロ

-コード
-,