WSH(Windows Scripting Host)を使ってデスクトップのフルパスを取得してアクティブなブックをデスクトップに保存するマクロと、事前に同じ名前のファイルが存在していないかを確認して同名ファイルがあったときには中断するマクロをご紹介しました。
保存時に同名ファイルが存在していた場合に強制上書きするサンプルマクロ
同じ名前のファイルが存在していた場合に、強制的に上書きしてしまうという仕様が選ばれることもあります。
Dim wsh As Object 'IWshRuntimeLibrary.WshShell
Dim dt_path As String
Dim bk_name As String
Set wsh = CreateObject("WScript.Shell")
dt_path = wsh.SpecialFolders("desktop")
Set wsh = Nothing
bk_name = ActiveWorkbook.Name
bk_name = dt_path & "\" & bk_name
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=bk_name
Application.DisplayAlerts = True
デスクトップのフルパスを取得して、パスを含んだファイル名を作成する部分は、既にご紹介しているマクロと同じです。
Set wsh = CreateObject("WScript.Shell")
dt_path = wsh.SpecialFolders("desktop")
Set wsh = Nothing
bk_name = ActiveWorkbook.Name
bk_name = dt_path & "\" & bk_name
作成したフルパス込みのファイル名を使ってWorkbook.SaveAsメソッドを実行する前に、警告を非表示にしてしまえば、
Application.DisplayAlerts = False
万一同じ名前のファイルがあったときには強制的に上書き保存されます。
ActiveWorkbook.SaveAs Filename:=bk_name
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » 保存時に同じ名前のファイルがあった場合に強制的に上書きするExcelマクロ