MW211 EXIT

devlog
ExcelVBA/別ブックを開く場合にイベントを抑止
2019年12月13日
ブック(Excelファイル)を開く際に、以下のようにイベントを定義していたとする。
┌──────────────────────────────────────┐
│Private Sub Workbook_Open()                                                 │
│    ' イベント                                                              │
│End Sub                                                                     │
└──────────────────────────────────────┘
このブックを他から開いた場合に、このイベントが発動してしまうが
これを抑止する方法。

以下のようにファイルを開く直前にイベントを抑止すればよい。
┌──────────────────────────────────────┐
│Dim ブック As Workbook                                                      │
│Application.EnableEvents = False    '←★イベント抑止                       │
│Set ブック = Workbooks.Open(Filename:="(入力ファイルのパス)")               │
│Application.EnableEvents = True     '←★イベント抑止の解除                 │
│'(各種処理)                                                                 │
│ブック.Close SaveChanges:=False                                             │
└──────────────────────────────────────┘
一旦、開いてしまえば、こちらのイベントは無関係となるので
イベント抑止を元に戻してあげてよい。

なお、他のイベント(入力イベントなど)についても考え方は同じ。
分類:ExcelVBA