Excelブックの操作とイベント処理&VBAのエラー処理:Excelマクロ/VBAで始める業務自動化プログラミング入門(10)(1/4 ページ)
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、ブック操作のメソッド、Activate、Open、Add、Close、Save、GetOpenFilename、SaveAsなどに加えて、VBAにおける基本的なエラー処理であるOn Error Goto構文について解説【Windows 10、Excel 2016に対応】。
実用的な「ブック」処理
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説する本連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」。前回の「Excelシートの参照、移動、コピー、追加、削除とイベント処理」では、「シートの操作」について解説したが、今回は「ブックの操作」について解説する。
「ブック」とは、前回紹介した「シート」(ワークシート)の集合体だ。Excelで作られる「ファイル」とほぼ同義といえる。ブックはExcelメニューの[ファイル]→[新規]でいくらでも追加できる。
筆者個人の考えとしては、このブックに関する処理をマクロ化する意味は、あまり見当たらない。まだ筆者がVBAに対して初心者であるからかもしれないが、今回のサンプルで紹介しているように、「毎日使用するファイルのボタンを用意して、ボタンをクリックするだけで、必要なファイルが開く」といったマクロは、十分に日常の業務に役に立つだろう。
ブックに関しても、いろいろなマクロがあると思うが、今回は筆者の独断と偏見で、実用的なサンプルだけに絞って解説していく。
Activateメソッドでブックの参照
最初は、ブックを参照する解説から入る。例えば、図1のように「Book1」「Book2」「Book3」と3つのブックが開いているとする。このブックの中で真ん中に位置している「Book2」をアクティブにしてみよう。
図1の状態から「Book2」をアクティブにするには、リスト1のようなマクロを記述する。
Option Explicit Sub ブックの参照() Workbooks("Book2").Activate End Sub
ブックをアクティブにするにはWorkbooksコレクションのActivateメソッドを使用する。Workbooksコレクションの引数にブックの名前、またはインデックス番号を指定する。リスト1の「Workbooks("Book2").Activate」は「Workbooks(2).Activate」と書いても同じだ。
実行すると、図2のように「Book2」がアクティブになって前面に表示される。
次に、保存しているブックを開いてみよう。
Openメソッドでブックを開く
ブックを開くにはOpenメソッドを使用する。書式は下記の通りだ。
Openメソッドの書式
Workbooksコレクション.Open FileName:={絶対パス付Excelのファイル名}
ローカルフォルダに保存している「社員売上表.xlsx」ファイルを開くにはリスト2のように記述する。
Sub 社員売上表を開く() Workbooks.Open Filename:="j:\Excel2016Data\社員売上表.xlsx" End Sub
※読者がこのマクロを試す場合は、それぞれの環境のxlsxファイルのパスに変更する必要がある。
このマクロを図3の「社員売上表を開く」ボタンに関連付ける。
[OK]ボタンをクリックし、一度ボタン以外のセルをクリックしてから、再度「社員売上表を開く」をクリックすると、「社員売上表.xlsx」が開く(図4)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Excelマクロ/VBAリファレンス用途別・キーワード別一覧超まとめ
- ピボットテーブルとは何か──「そもそも、何をする機能か」を理解する
Excelを通じて「ピボットテーブル」の基礎を学び、データ分析を実践するまでを習得する本連載。初回はピボットテーブルの基礎と、「どんなことができるのか」を解説する。 - どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう。