【VBA】イベント処理が記載されているExcelファイルの修正

背景

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
タイトルとURLをコピーしました