Excelブックの操作とイベント処理&VBAのエラー処理:Excelマクロ/VBAで始める業務自動化プログラミング入門(10)(4/4 ページ)
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、ブック操作のメソッド、Activate、Open、Add、Close、Save、GetOpenFilename、SaveAsなどに加えて、VBAにおける基本的なエラー処理であるOn Error Goto構文について解説【Windows 10、Excel 2016に対応】。
ブックのイベント処理
次はブックに関するイベント処理について解説していこう。
ブックのイベント処理では、あるファイルを開くと、自動的にそのファイルと関連するファイルも同時に開くマクロを記述できる。
いちいち必要なファイルを選択して開く必要はなくなる。それだけでも、手間が大幅に掛からなくなる。素晴らしいことではないだろうか。ぜひ、日常の業務に取り入れてほしい。
ブックに関するイベントの種類は以下の表にある。
イベント | タイミング |
---|---|
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」として保存しておく。
以下のマクロが自動的に追加されるので、この中にコードを記述していく。
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
ActiveWorkbook.Pathでアクティブウィンドウのブックへの絶対パスを取得する。
最初に開くBookOpen.xlsmファイルと、このファイルが開くと自動的に開く「社員売上2016_05.xlsx」ファイルは、同一フォルダ内にあることが前提条件だ。ただし、「社員売上2016_05.xlsx」のファイル名は、ファイルを保存した月のファイル名になるので、必ずしも「社員売上2016_05.xlsx」であるとは限らない。
実行すると、図12のようになる。
次回は、「印刷」処理について
以上、今回はブック処理の一部について解説したが、いかがだっただろうか。
任意のブックを開いたときに、そのブックと関連のある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年に薬師寺聖と結成したコラボレーション・ユニット
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Excelマクロ/VBAリファレンス用途別・キーワード別一覧超まとめ
- ピボットテーブルとは何か──「そもそも、何をする機能か」を理解する
Excelを通じて「ピボットテーブル」の基礎を学び、データ分析を実践するまでを習得する本連載。初回はピボットテーブルの基礎と、「どんなことができるのか」を解説する。 - どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう。