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

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

プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、ブック操作のメソッド、Activate、Open、Add、Close、Save、GetOpenFilename、SaveAsなどに加えて、VBAにおける基本的なエラー処理であるOn Error Goto構文について解説【Windows 10、Excel 2016に対応】。

[薬師寺国安,PROJECT KySS]

実用的な「ブック」処理

 プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説する本連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」。前回の「Excelシートの参照、移動、コピー、追加、削除とイベント処理」では、「シートの操作」について解説したが、今回は「ブックの操作」について解説する。

 「ブック」とは、前回紹介した「シート」(ワークシート)の集合体だ。Excelで作られる「ファイル」とほぼ同義といえる。ブックはExcelメニューの[ファイル]→[新規]でいくらでも追加できる。

 筆者個人の考えとしては、このブックに関する処理をマクロ化する意味は、あまり見当たらない。まだ筆者がVBAに対して初心者であるからかもしれないが、今回のサンプルで紹介しているように、「毎日使用するファイルのボタンを用意して、ボタンをクリックするだけで、必要なファイルが開く」といったマクロは、十分に日常の業務に役に立つだろう。

 ブックに関しても、いろいろなマクロがあると思うが、今回は筆者の独断と偏見で、実用的なサンプルだけに絞って解説していく。

Activateメソッドでブックの参照

 最初は、ブックを参照する解説から入る。例えば、図1のように「Book1」「Book2」「Book3」と3つのブックが開いているとする。このブックの中で真ん中に位置している「Book2」をアクティブにしてみよう。

図1 ブックが3つ開いている

 図1の状態から「Book2」をアクティブにするには、リスト1のようなマクロを記述する。

Option Explicit
Sub ブックの参照()
  Workbooks("Book2").Activate
End Sub
リスト1 「Book2」をアクティブにする

 ブックをアクティブにするにはWorkbooksコレクションのActivateメソッドを使用する。Workbooksコレクションの引数にブックの名前、またはインデックス番号を指定する。リスト1の「Workbooks("Book2").Activate」は「Workbooks(2).Activate」と書いても同じだ。

 実行すると、図2のように「Book2」がアクティブになって前面に表示される。

図2 Book2がアクティブになった

 次に、保存しているブックを開いてみよう。

Openメソッドでブックを開く

 ブックを開くにはOpenメソッドを使用する。書式は下記の通りだ。

Openメソッドの書式

Workbooksコレクション.Open FileName:={絶対パス付Excelのファイル名}


 ローカルフォルダに保存している「社員売上表.xlsx」ファイルを開くにはリスト2のように記述する。

Sub 社員売上表を開く()
  Workbooks.Open Filename:="j:\Excel2016Data\社員売上表.xlsx"
End Sub
リスト2 ローカルフォルダのブックファイルを開く

※読者がこのマクロを試す場合は、それぞれの環境のxlsxファイルのパスに変更する必要がある。

 このマクロを図3の「社員売上表を開く」ボタンに関連付ける。

図3 リスト2のマクロを「社員売上表を開く」ボタンに関連付ける

 [OK]ボタンをクリックし、一度ボタン以外のセルをクリックしてから、再度「社員売上表を開く」をクリックすると、「社員売上表.xlsx」が開く(図4)。

図4 「社員売上表を開く」が開いた
       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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