Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excel VBA スキルアップコレクション Topics  >     (23) Excelファイルを開くと同時に起動するイベントプロシジャを機能させない

 
(23) Excelファイルを開くと同時に起動するイベントプロシジャを機能させない

 特定のフォルダに存在するExcelファイルを順次開いて閉じる作業について、「(22) Excelファイルを読み取り専用で開き保存せずに閉じる」にて取り上げました。Excelファイルを読み取り専用で開き、保存無しで閉じる処理をループで実現することが可能なので、大量のExcelファイルの内容を集計するマクロは比較的簡単に、そして低リスクで作成できます。 但し、集計対象のExcelファイルの中にイベントプロシジャWorkbook_Open( )を含むファイルが存在していると、ファイルを開くと同時にそのプロシジャが実行されてしまいます。Workbook_Open( )が以下のようなコードの場合、マクロでExcelファイルを開くと、メッセージボックスが表示され、処理が一時中断してしまいます。せっかく集計処理をマクロ化しても、実行中に席を外すことができなくなってしまいます。

  1行目:  Private Sub Workbook_Open()
  2行目:      MsgBox "Workbook_Openが起動しました。"
  3行目:  End Sub

 Excelファイルを開く際に、イベントプロシジャWorkbook_Open( )を機能させなくする方法を紹介します。

 Excelファイルを開く際に、イベントプロシジャWorkbook_Open( )を機能させたくない場合は、以下のようにApplication.EnableEventsを「False」を設定します。
Application.EnableEvents → True/False

        ' イベントプロシジャを機能させないよう、設定する。
        Application.EnableEvents = False
        ' Excelファイルを読み取り専用で開く。
        Workbooks.Open _
            fileName:=ファイルのフルパス _
            , ReadOnly:=True
        ' イベントプロシジャを機能させる設定に戻す。
        Application.EnableEvents = True
ページの先頭へ