VBSでWordファイルの文字列の置換をします。
プログラムを実行すると
行: 36
文字: 5
エラー: オブジェクトでサポートされていないプロパティまたはメソッドです。: 'doc.Selection'
コード: 800A01B6
ソース: Microsoft VBScript 実行時エラー
とエラーメッセージが出ます。
また、エラーの出る36行目から関係する40行目をコメントアウトにして
実行すると特にエラーが出ないので、正常に終了しているのだと思いますが、
プロセスにワードが残ったままになります。
27行目の処理ではプロセスの終了はできないでしょうか。
宜しくお願い致します。
VBS
1Dim FindWord 2Dim ReplaceWord 3Const wdReplaceAll = 2 4 5' docxファイルの文字列を置換処理するプログラム 6FindWord = InputBox("置換対象文字は?", "置換対象文字指定", "") 7If FindWord ="" Then WScript.Quit 8ReplaceWord = InputBox("置換後文字は?", "置換後文字指定", "") 9 10'Wordオブジェクト作成 11Dim wordApp 12Set wordApp = WScript.CreateObject("Word.Application") 13wordApp.Visible = False 14 15' ファイル操作用のオブジェクトを得る 16Dim FSO 17Set FSO = CreateObject("Scripting.FileSystemObject") 18Dim ThisVbsPath 19ThisVbsFolderPath = FSO.GetParentFolderName(WScript.ScriptFullName) 20' ファイルの一覧を得る 21For Each f In FSO.GetFolder(ThisVbsFolderPath).Files 22 ' docx ファイルだけ処理する 23 If LCase(FSO.GetExtensionName(f.Name)) = "docx" And Left(FSO.GetFileName(f),2) <> "~$" Then 24 ReplaceDoc f.Path 25 End If 26Next 27Set wordApp = nothing 28 29 30' 各docx ファイルを処理するサブルーチン 31Sub ReplaceDoc(fname) 32 Dim doc 33 ' Wordファイルを開いて処理 34 Set doc = wordApp.Documents.Open(fname) 35 ' Wordのテキストを一括置換する 36 With doc.Selection 37 .Find.Text = FindWord 38 .Find.Replacement.Text = ReplaceWord 39 .Find.Execute 'Replace:=wdReplaceAll 40 End With 41 ' ファイルを保存して閉じる 42 doc.Save 43 doc.Close 44End Sub

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/31 11:09 編集