以前の記事で「【コード】カーソル位置を記録する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