Option Explicit Dim objFSO Dim excelApp, workbook, worksheet Dim searchStr, replaceStr, prefix Dim filePath, newFilePath ' ファイルシステムオブジェクトを作成 Set objFSO = CreateObject("Scripting.FileSystemObject") ' プレフィックスを入力 prefix = InputBox("ファイル名に付けるプレフィックスを入力してください") ' 検索置換文字列を入力 searchStr = InputBox("検索する文字列を入力してください") replaceStr = InputBox("置換する文字列を入力してください") ' エクセルアプリケーションオブジェクトを作成 Set excelApp = CreateObject("Excel.Application") excelApp.Visible = False excelApp.DisplayAlerts = False ' メッセージを非表示にする ' ドラッグ&ドロップされたファイルの数だけ処理を繰り返す For Each filePath in WScript.Arguments ' エクセルファイルを開く Set workbook = excelApp.Workbooks.Open(filePath) ' ドラッグ&ドロップされたエクセルファイル内のシートの数だけ処理を繰り返す For Each worksheet In workbook.Sheets ' テキストの置換 worksheet.Cells.Replace searchStr, replaceStr Next ' 別名で保存 newFilePath = objFSO.GetParentFolderName(filePath) & "\" & prefix & "_" & objFSO.GetFileName(filePath) workbook.SaveAs newFilePath ' エクセルを閉じる workbook.Close ' エクセルアプリケーションを終了 excelApp.Quit ' オブジェクトの解放 Set worksheet = Nothing Set workbook = Nothing Next excelApp.Visible = True excelApp.DisplayAlerts = True ' メッセージを非表示にする Set excelApp = Nothing Set objFSO = Nothing Msgbox "置換処理終了"