実現したいこと
ExcelVBAで、WORDファイル(docxファイル)を操作し、
WORDファイルに記載されている文字列「xxx★xxx」を
文字列「yyy^fyyy」に変換したいです。
前提
PCはWindows10で、WORD2019、Excel2019を使用しています。
文字列を置換する機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
『実行時エラー '5624':
^fは[置換後の文字列]に指定できない特殊文字列です。』
該当のソースコード
本来は、文字列「xxx★xxx」を文字列「yyy^fyyy」に変換したいですが、
そのままソースコードを乗せるとマズいので、
chatGPTに教えていただいた、コードを参考として載せます。
Sub ReplaceStarWithCaret()
Dim wdApp As Object
Dim wdDoc As Object
Dim findText As String
Dim replaceText As String
' Wordアプリケーションを起動(既に開いている場合はそのインスタンスを使用) On Error Resume Next Set wdApp = GetObject(, "Word.Application") If wdApp Is Nothing Then Set wdApp = CreateObject("Word.Application") End If On Error GoTo 0 wdApp.Visible = True ' Wordを表示 ' 変換対象の文書を開く(ここで適切なパスを指定) Set wdDoc = wdApp.Documents.Open("C:\path\to\your\document.docx") ' 1. ^を一時的に別の文字列{caret}に置換 findText = "^" replaceText = "{caret}" ' ^を一時的に{caret}に置き換え With wdDoc.Content.Find .Text = findText .Replacement.Text = replaceText .Execute Replace:=2 ' すべて置換 End With ' 2. ★を一時的に{caret}に置換 findText = "★" replaceText = "{caret}" ' ★を一時的に{caret}に置き換え With wdDoc.Content.Find .Text = findText .Replacement.Text = replaceText .Execute Replace:=2 ' すべて置換 ←■■ここでエラーが発生します■■ End With ' 3. 最後に一時的な文字列{caret}を^に戻す findText = "{caret}" replaceText = "^" ' {caret}を^に戻す With wdDoc.Content.Find .Text = findText .Replacement.Text = replaceText .Execute Replace:=2 ' すべて置換 End With ' 完了メッセージ MsgBox "置換が完了しました!"
End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/12/16 23:44