VBAの勉強でレベルアップするシリーズの二段から三段へのステップアップする手順を解説します。これまでの処理はエクセルの内部だけで処理が完結していました。これからはOutlookやInternet Explorerと言ったExcel以外のアプリケーションを操作する事を目指します。
エクセルの処理だけでもかなりの自動化ができましたが、できることがグッと増えていきますよ。
この記事は二段です。
レベルについてはExcel VBAの実力(レベル)を定義してみる 初心者~三段をご参照ください。
目次
二段と三段の違いは何か
二段と三段の違いは何かというと、Excel VBAでエクセル以外のアプリケーションを動かす事ができるかどうかです。つまり、その方法を身に付ければ三段です。
エクセル以外のアプリケーションを動かすにはOLEオートメーションとAPIを利用する方法の2つがあります。APIについては、三段から四段へのステップアップで触れることにして、三段を目指す為には、OLEオートメーションから学んでいきます。以降、OLEオートメーションの事を単にOLEと呼びます。
OLEを確実に身に付ける勉強方法 3つの手順
OLEを確実に身に付けるには3つの手順で進めるのがおすすめです。なぜ手順が必要かというと、このブログではきちんと身につける事を大事にしているためです。例えば、OLEを使ってOutlookでメールを配信するプログラムはサンプルコードがネット上にたくさんあります。
それをコピペして使ってはいけないのです。参考にするのはもちろん構わないのですが、コピペしたら身につきません。中身はよく分からないけど、とにかく動くプログラムのできあがりです。そうやって作ったプログラムは自由自在に改修ができません。やはり、三段を目指すには自分で書けるようになる必要があります。
きちんと確実にOLEを身に付ける勉強の3つの手順は下記の通りです。
- 外部のアプリケーションを動かすにはどうすれば良いのかを知る
- 何でもいいのでOLEで何か一つ作ってみる
- OLEオートメーションのクラス名やプロパティ、メソッドの調べ方を知る
順に解説していきます。
外部のアプリケーションを動かすにはどうすれば良いのかを知る
まずはOLEの概念を掴みます。初段から二段になるときにクラスとオブジェクト指向についてみっちり学習しました。その時も、いきなりプログラムを書き始めるのではなく、オブジェクトとは何か、クラスとは何かについての概念を徹底的に勉強しました。
OLEを身に付ける時も同様で、いきなりコードを書き始めるのでは無く、OLEがどんな概念なのかをしっかり勉強していきます。遠回りな様で結局それが早いし、自由自在に操れるようになる為に必要な手順です。
OLEの概念については、VBA OLEオートメーションで別のアプリケーションを動かす① OLEの概念で、詳しく解説しています。
何でもいいのでOLEで何か一つ作ってみる
初心者から初級者にステップアップするとき、何でもいいので一つ完成品を作る事を目標にしました。今回も同じです。まずは何でもいいのでサンプルコードのコピペではなく、自分の一つ作ってみる。これができれば、あとはその内容を充実させていけばOKです。
実際に作る方法については、VBA OLEオートメーションで別のアプリケーションを動かす② OLEで他のアプリケーションを動かすコードの作り方 Internet Explorerの例で解説しています。
参考までにOLEを使ってOutlookを操作し、メールを配信する方法もVBA OLEを使ってメールを配信するで解説しています。コピペでは無く、写経を経て、自分で作れるようにしておきましょう。
OLEのクラス名やプロパティ、メソッドの調べ方を知る
OLEの概念、使い方そのものはクラスとオブジェクトの概念と使い方が理解出来ていれば、難しいものではありません。自分でクラスを作るのでは無く、用意された別のアプリケーションのクラスを使うだけだからです。
OLEが難しいのは、クラス名やプロパティ、メソッドを自分で調べなくてはいけない事です。
そして、OLEの解説記事はネットで調べても、上級レベルまでと違い少ないです。自分で調べる力、つまり公式ドキュメントを読んで理解する力を高めることが重要です。この力は、将来、VBA以外のプログラミング言語を勉強するときに役立ちます。これを機会に、公式ドキュメントに親しむようにしましょう。
OLEを使うのに必要な調べる力についてはVBA OLEオートメーションで別のアプリケーションを動かす③ 今こそ身に付けておくべき、OLEを使うのに必要な調べる力で解説しています。
<お知らせ>
Excel VBAでクラスやオブジェクトの概念と使い方を丁寧に解説し、ワンランク上の実力を目指すガイドを書きました。この本で本物の実力を身に付けて一皮むけてみませんか?
books.rakuten.co.jp