![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
例えば、Wordの文章で「田中」とあるものを「山田」に変えたい場合は、置き換えの機能を使ってマクロの記録ができると思います。
しかし、こうするとテキストボックスやヘッダフッタに記載された文字は変更できないように思います。
どうすれば、これらの文字も含めて置換の対象とすることができるか教えてください。
Sub Macro()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "山田"
.Replacement.Text = "田中"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
No.1ベストアンサー
- 回答日時:
[マクロの記録]は実行した機能をすべて記録するものではありません。
記録したものを実行しても、すべてのストーリーを対象にしません。
カーソルのあるストーリーのみに実行されるので、本文にある場合なら
本文のみが置換の対象になります。テキストボックス内へとカーソルを
置き記録したマクロを実行すれば、カーソルのある領域のみ置換をして
その他のテキストボックスや本文などは対象になりません。
文書全体のテキストを置換したい場合は、以下のテキスト置換用マクロ
などで対応します。
Sub AllReplaceText()
Dim oStory As Range
Dim Ftext As String
Dim Rtext As String
'検索する文字列
Ftext = "山田"
'置換後の文字列
Rtext = "田中"
Application.ScreenUpdating = False
' 本文領域にあるテキストを置換。
For Each oStory In ActiveDocument.StoryRanges
With oStory.Find
.Text = Ftext
End With
With oStory
Do While .Find.Execute = True
.Text = Rtext
.Collapse wdCollapseEnd
Loop
End With
' 本文領域以外のストーリーが存在する場合の置換。
While Not (oStory.NextStoryRange Is Nothing)
Set oStory = oStory.NextStoryRange
With oStory.Find
.Text = Ftext
End With
With oStory
Do While .Find.Execute = True
.Text = Rtext
.Collapse wdCollapseEnd
Loop
End With
Wend
Next
Application.ScreenUpdating = True
End Sub
' ただし、ヘッダー・フッターにあるテキストボックスなどは対象外
参考にした関連情報
http://support.microsoft.com/kb/409098/ja
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの『検索と置換ボック...
-
文字列に含まれているダブルク...
-
カンマを改行に変換する方法
-
Excelで全角ハイフンを半角ハイ...
-
エクセルで濁点カナの変換方法...
-
複数のスペースを1つのタブに...
-
Excel : テキストボックス中の...
-
秀丸で余分なスペースを削除したい
-
文字の列を揃えるには
-
【MS Office Word 2007】文章の...
-
カンマ( , )をタブに置換したい。
-
エクセルVBAでワードの文字を検...
-
エクセル重複削除で綺麗に削除...
-
word 改行マークを印刷時に表示...
-
読取革命の使い方を教えてくだ...
-
メモ帳で括弧内をまとめて消去...
-
桐の項目名の変数利用(一括処理)
-
ワードで複数の文字を一括・連...
-
横書きの、和文の読点を、カン...
-
エクセルの文字・数字の前後の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマを改行に変換する方法
-
カンマ( , )をタブに置換したい。
-
秀丸で余分なスペースを削除したい
-
Excelで全角ハイフンを半角ハイ...
-
文字の列を揃えるには
-
エクセル重複削除で綺麗に削除...
-
複数のスペースを1つのタブに...
-
Word:差し込み印刷時に文字列...
-
エクセルの『検索と置換ボック...
-
ワードで複数の文字を一括・連...
-
文字列に含まれているダブルク...
-
エクセルで濁点カナの変換方法...
-
word 改行マークを印刷時に表示...
-
セルの文字列後ろのスペース削除
-
1文字だけ置換したい
-
【MS Office Word 2007】文章の...
-
Excelで特定の文字以下を削除し...
-
エクセルの「置換」で1行の部分...
-
Excel : テキストボックス中の...
-
.txtファイルの空白を全て消去...
おすすめ情報