連載
» 2016年09月08日 05時00分 公開

Excelマクロ/VBAで始める業務自動化プログラミング入門(10):Excelブックの操作とイベント処理&VBAのエラー処理 (4/4)

[薬師寺国安,PROJECT KySS]
前のページへ 1|2|3|4       

ブックのイベント処理

 次はブックに関するイベント処理について解説していこう。

 ブックのイベント処理では、あるファイルを開くと、自動的にそのファイルと関連するファイルも同時に開くマクロを記述できる。

 いちいち必要なファイルを選択して開く必要はなくなる。それだけでも、手間が大幅に掛からなくなる。素晴らしいことではないだろうか。ぜひ、日常の業務に取り入れてほしい。

 ブックに関するイベントの種類は以下の表にある。

表 ブックのイベント
イベント タイミング
Activate ブックがアクティブになったとき
NewSheet ブックに新しいシートが追加されたとき
Open ブックを開いたとき
SheetActivate ブック内のシートがアクティブになったとき
SheetBeforeDoubleClick ブック内のシートがダブルクリックされたとき
SheetBeforeRightClick ブック内のシートが右クリックされたとき
BeforeClose ブックを閉じる前
BeforePrint ブックを印刷する前
BeforeSave ブックを保存する前
参考「Workbook イベント - MSDN

 最初にOpenイベントを使って、ブックを開いたときに「"j:\Excel2016Data\社員売上表2016_" & Format(Date, "mm") & ".xlsx"」ファイルを開いてみよう。「Format(Date, "mm")」は前述した通り、当該月(2桁)を取得する。

 VBEを起動し、「ThisWorkbook」をダブルクリックする。「General」の「V」アイコンをクリックして、「Workbook」を選択。次に、右の欄に表示されている「V」アイコンから「Open」を選択する(図11)。このマクロを記述するファイルは、新しくExcel 2016を起動してリスト7のマクロを作成し、「BookOpen.xlsm」として保存しておく。

図11 ThisWorkbookをダブルクリックし、Workbookを選択、イベントにOpenを選択

 以下のマクロが自動的に追加されるので、この中にコードを記述していく。

Private Sub Workbook_Open()
  
End Sub

 マクロはリスト7のようになる。

Option Explicit
Private Sub Workbook_Open()
  Workbooks.Open Filename:=ActiveWorkbook.Path & "\社員売上表2016_" & Format(Date, "mm") & ".xlsx"
End Sub
リスト7 BookOpen.xlsmファイルを開くと、自動的に「j:\Excel2016Data\社員売上表2016_" & Format(Date, "mm") & ".xlsx」ファイルが開く

 ActiveWorkbook.Pathでアクティブウィンドウのブックへの絶対パスを取得する。

 最初に開くBookOpen.xlsmファイルと、このファイルが開くと自動的に開く「社員売上2016_05.xlsx」ファイルは、同一フォルダ内にあることが前提条件だ。ただし、「社員売上2016_05.xlsx」のファイル名は、ファイルを保存した月のファイル名になるので、必ずしも「社員売上2016_05.xlsx」であるとは限らない。

 実行すると、図12のようになる。

図12 「BookOpen.xlsm」ファイルを開くと、自動的に「社員売上2014_01.xlsm」ファイルが開く

次回は、「印刷」処理について

 以上、今回はブック処理の一部について解説したが、いかがだっただろうか。

 任意のブックを開いたときに、そのブックと関連のあるExcelファイルも開くという処理は、大変に便利で、これからの業務に大いに役立つのではないだろうか。紹介したサンプルをカスタマイズして、ぜひ職場でも利用していただきたい。

 次回は、日本で行われる「業務」に欠かせない印刷処理について解説する。

■更新履歴

【2016/9/8】Windows 10、Excel 2016に対応しました。


参考書籍

著者プロフィール

PROJECT KySS 薬師寺 国安(やくしじ くにやす)

1950年生まれ。フリーVBプログラマ。高級婦人服メーカーの事務職に在職中、趣味でVBやActiveXに取り組み、記事を執筆。2003年よりフリー。.NETやRIAに関する執筆多数。Windowsストアアプリも多数公開中(約270本)。

 

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。

PROJECT KySSは、1997年に薬師寺聖と結成したコラボレーション・ユニット


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。