【Wordマクロ】記憶したカーソル位置に文字列を移動する | みんなのワードマクロ

みんなのワードマクロ

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

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