EXCEL VBA でのワード置換を教えてください。
EXCELからワードをオープンして文字列置換をしたいです。
Dim wdObj As Object
Dim wdDoc As Object
Dim objSelect As Object
Dim xResult As Boolean
Set wdObj = CreateObject("Word.Application")
wdObj.Visible = True
Set wdDoc = wdObj.Documents.Open(ActiveWorkbook.Path + "\Sample.doc")
Set objSelect = wdObj.Selection
objSelect.Find.Text = "*****"
objSelect.Find.Replacement.ClearFormatting
objSelect.Find.Replacement.Text = Format(35000, "###,###,###")
objSelect.Find.Execute(Replace:=wdReplaceAll)
上記コードで実行したところ、検索はできるのですが、置換ができません。
手動で置換フォームを出してみると、検索文字列、置換文字列ともに目的の文字列が入っています。
そのまま「全て置換」のボタンを押すと、問題なく置換されます。
色々調べてみたのですが、どのサイトもExecuteで置換できるように書かれていて、煮詰まってしまいました。
お知恵をお貸し下さい。
No.1ベストアンサー
- 回答日時:
以下のマクロで試してみて。
Sub test()
Dim wdObj As Object
Dim wdDoc As Object
Dim objSelect As Object
Dim xResult As Boolean
Set wdObj = CreateObject("Word.Application")
wdObj.Visible = True
Set wdDoc = wdObj.Documents.Open(ActiveWorkbook.Path + "\Sample.doc")
Set objSelect = wdObj.Selection
objSelect.Find.ClearFormatting
objSelect.Find.Replacement.ClearFormatting
With objSelect.Find
.Text = "*****"
.Replacement.Text = Format(35000, "###,###,###")
.Forward = True
.MatchFuzzy = True
.MatchWholeWord = False
.MatchCase = True
.MatchWildcards = False
.Forward = True
.Wrap = 1 'wdFindContinue
.Format = False
.Execute , , , , , , , , , , 2 'wdReplaceAll
End With
End Sub
ExcelでWordの置換を操作する場合
Find.Execute のパラメータを省略する場合「, , , , , , , , , , 2」の
ように書くほうが確実みたい。
https://msdn.microsoft.com/ja-jp/library/microso …
それと、Selection.Find を使う場合は、条件を省略しないほうが良い
らしいです。
https://oshiete.goo.ne.jp/qa/5559086.html
できました!
あっという間にできました!
条件を省略していたのがもんだいだったのでしょうか・・・
とにかく感動しました・・・
本当にありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマを改行に変換する方法
-
カンマ( , )をタブに置換したい。
-
CSVファイルの任意の列をダブル...
-
エクセル重複削除で綺麗に削除...
-
文字列に含まれているダブルク...
-
セルの文字列後ろのスペース削除
-
【MS Office Word 2007】文章の...
-
word 改行マークを印刷時に表示...
-
エクセルで濁点カナの変換方法...
-
文字の列を揃えるには
-
.txtファイルの空白を全て消去...
-
エクセルの『検索と置換ボック...
-
秀丸で余分なスペースを削除したい
-
Word:差し込み印刷時に文字列...
-
Word2010特定の名前を置き換え...
-
ワード (word ) 日本語の文字...
-
エクセルの文字・数字の前後の...
-
Excelで全角ハイフンを半角ハイ...
-
Wordの置換方法について
-
Excel : テキストボックス中の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマを改行に変換する方法
-
カンマ( , )をタブに置換したい。
-
Excelで全角ハイフンを半角ハイ...
-
文字の列を揃えるには
-
エクセルの『検索と置換ボック...
-
エクセルで濁点カナの変換方法...
-
Word:差し込み印刷時に文字列...
-
秀丸で余分なスペースを削除したい
-
エクセル重複削除で綺麗に削除...
-
ワードで複数の文字を一括・連...
-
セルの文字列後ろのスペース削除
-
CSVファイルの任意の列をダブル...
-
1文字だけ置換したい
-
文字列に含まれているダブルク...
-
word 改行マークを印刷時に表示...
-
Excelで特定の文字以下を削除し...
-
エクセル 置換又は関数でかっこ...
-
複数のスペースを1つのタブに...
-
エクセルの「置換」で1行の部分...
-
【MS Office Word 2007】文章の...
おすすめ情報