以前の記事で「【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マクロ】カーソル位置を記録する
↧
【Wordマクロ】記憶したカーソル位置に文字列を移動する
↧