
複数の Word 文書で一括検索と置換を行うマクロを作成しようとしています。ネットでこのマクロを見つけ、グラフィックにも適用できるように変更しましたが、ファイルが見つからないという実行時エラー (5174) が繰り返し発生します (フォルダ内に確実に存在するにもかかわらず)。
問題は次のとおりだと思います: support.microsoft.com/en-us/kb/212664 ただし、すべての Fname の後に「.docx」を追加するだけでは機能しないため、マクロに実装するのに少し問題があります。
マクロの経験があまりないので、初心者のような質問であればご容赦ください。
ご協力いただければ幸いです。
ありがとう。
Sub ReplaceText()
Dim Directory As String
Dim FType As String
Dim FName As String
Directory = "C:\Users\pieria\Desktop\TempPics"
FType = "*.docx"
ChDir Directory
FName = Dir(FType)
' for each file you find, run this loop
Do While FName <> ""
' open the file
Documents.Open FileName:=FName '<--Error is supposedly here
' search and replace the company name
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "CompanyA"
.MatchCase = True
.Replacement.Text = "CompanyB"
End With
Selection.Find.Execute Replace:=wdReplaceAll
' save and close the current document
ActiveDocument.Close wdSaveChanges
' look for next matching file
FName = Dir
Loop
End Sub
答え1
現在のインスタンスはChDir
あなたが行ったことを認識していないと思います。ファイルを開くときにフルパスを指定することをお勧めします。
' open the file
Documents.Open FileName:= Directory & "\" & FName
文字列を演算子でDirectory
連結します。FName
&
Directory
含まれてC:\Users\pieria\Desktop\TempPics
いてFName
含まれている場合は、新しい文字列を作成しますFirst.docx
&
C:\Users\pieria\Desktop\TempPics\First.docx
\
ディレクトリ名とファイル名の間に追加したことに注意してください...