Wordマクロで選択範囲内だけ置換するときの注意
選択範囲内の文字の置換を行うには次のようにします。
Sub 選択範囲のアをイに置換()
With Selection.Find
.Text = "ア"
.Replacement.Text = "イ"
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
With Selection.Find
.Text = "ア"
.Replacement.Text = "イ"
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
この場合、次のようなメッセージが出ることがあります。
選択範囲の検索が終了しました。○個の項目を置換しました。文書の残りの部分も検索しますか?
ここで「いいえ」をクリックすればよいのですが、うっかり「はい」をクリックすると選択範囲外の文字まで置換されてしまいます。
このようなときは「Find.Wrap」プロパティに「wdFindStop」を指定します。
Sub 選択範囲のアをイに置換()
With Selection.Find
.Text = "ア"
.Replacement.Text = "イ"
.Wrap = wdFindStop
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
With Selection.Find
.Text = "ア"
.Replacement.Text = "イ"
.Wrap = wdFindStop
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
これならば実行後にダイアログが出ることなく終了します。
[ 2010年9月18日 | カテゴリー: Word | タグ: VBA ]
« Excelで複数のファイルのすべてのシートのヘッダを操作 | 行頭の#の数に応じて見出しを設定 »
コメント
-
早速のご回答ありがとうございます。
今のところ、手元にテストできる環境がありませんので、後ほどその結果をご報告させていただきます。
宜しくお願い致します。 -
Stabuckyさん、いつもお世話になります。
試してみましたが、エラー5692で失敗しました。^pは検索に指定できない特殊文字という内容のメッセージです。
また、指定範囲内の最後の一行の空行だけを削除したいですが、合わせてお教えいただけますか?
宜しくお願い致します。
いつもお世話になっております。
お教えください。
置換する対象は文字でなく、空白の行の場合は、どうすればいいでしょうか?
つまり、空白の行をマクロで削除したいです。
宜しくお願い致します。