Application.DisplayAlertsでメッセージを制御する
新規のエクセルファイル(ブック)に名前を付けて保存する時、すでに同じ名前のファイルが存在すると、下の警告メッセージが表示されVBAの処理が止まってしまいます。
そのため、警告メッセージを表示されるプログラムの直前で、Application.DisplayAlerts=Falseを設定し、警告メッセージを非表示にします。
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
'新しいエクセルファイルを管理する変数 Dim newExcelFile As Workbook '新しいエクセルファイルを作成 Set newExcelFile = Workbooks.Add '新しいファイルに対する処理 With newExcelFile '警告メッセージを表示しない Application.DisplayAlerts = False 'ファイルを名前を付けて保存 .SaveAs Filename:="C:\エクセル用フォルダ\新しいファイル.xlsx" '警告メッセージを表示 Application.DisplayAlerts = True 'ファイルを閉じる .Close End With |
解説
保存処理の直前で、Application.DisplayAlerts = Falseとして、警告メッセージを表示しないようにしています。
こうすることで、同名のファイルがすでにあっても警告メッセージは表示されずに、ファイルが上書き保存されます。(当然ですが、すでにあった同名ファイルはなくなります)
保存処理が終わった後は、Application.DisplayAlertsをTrueに戻し、以降の処理では警告メッセージが表示されるようにしています。
POINT
処理終了後は、Application.DisplayAlertsをTrueに戻しましょう
注意すること
警告メッセージを表示しないで、問答無用で上書き保存します。
そのため、運用上「本当に上書き保存して問題ないか」を確認した上で、このApplication.DisplayAlerts = Falseの設定は行ってください。