背景
VBAでExcelファイルを開いて内容を変更する際に、イベント処理が実行されエラーが起きた。
エラーにより処理が止まってしまう。
何とかしたい。
対応方法
「Application.EnableEvents = False」でイベントを抑止する。
サンプルプログラムの前提
VBAのインプットのExcelファイルには、保存時のイベントが記載されている。
●ThisWorkBook
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "保存されました"
End Sub
サンプルプログラム
Sub sample()
Dim wk As Workbook
'イベントを抑止
Application.EnableEvents = False
'イベント処理が記載されたExcelファイルを開く
Set wk = Workbooks.Open("C:\Users\user\Desktop\temp\sampleVBA.xlsm")
'イベント処理が記載されたExcelファイルを修正
wk.Sheets("Sheet1").Range("A1").Value = "aiueo"
'Excelファイルを保存する
wk.Save
'Excelファイルを閉じる
wk.Close
'イベント抑止を解除
Application.EnableEvents = True
'後片付け
Set wk = Nothing
End Sub