OLEオートメーションの難しさは調べることの難しさでした。プログラムの流れ自体は明快で分かりやすいものでした。今回はOLEオートメーションのクラス名、メソッド、プロパティの調べ方について解説します。
この記事は二段です。
レベルについてはExcel VBAの実力(レベル)を定義してみる 初心者~三段をご参照ください。
目次
OLEを使うにはクラス名を調べる
VBAでは既定のクラスについてはクラス名とオブジェクト名が同じです。オブジェクトをやりとりする、とありますが、既定バインディングでは自分でインスタンスを生成しますし、実行時バインディングではクラス名の取得と同時にオブジェクトを生成するCreateObject関数を使います。
※このブログの読者は絶対誰も落ちこぼれにしない方針です。ここまでの説明で「ほへ??」って、なっている人は、クラスの使い方について復習しましょう!(リンク貼ります)
そのオブジェクト名と同じ名前のクラス名をまず調べてから、そのメンバー(メソッドとプロパティのこと)を調べます。
最も大事な公式サイト
OLEを利用するに当たり、最も大切な公式ドキュメントを紹介します。Office ディベロッパーセンターにあります。
Office VBA リファレンス
最も大事な公式ドキュメントは、Office VBA リファレンスです。今までVBAと言ってきたのはエクセルVBAのことです。本当は、VBAはOutlook VBAや、Word VBAもあります。それらのクラスをExcelから使いたいので、Officeの製品群の、全てのVBAのクラスが載っている場所を知っていることは重要です。リンクは下記です。
Ctrl + クリックで別ウィンドウで開くことができます。
docs.microsoft.com
このリンク先を開くと下の様な画面が出ます。
左端に様々なOfficeのアプリケーション名があります。この中から自分が操作したいオブジェクト名(=クラス名)を探します。
例として、今回はOutlookでメールを送信したいときのオブジェクトを探してみましょう。Outlookを選択するとプルダウンリストが展開されるので「オブジェクト モデル」を選択します。
すると、アルファベット順にオブジェクト名が出てきます。今回はメールを送りたいので、ソレっぽい名前で検索します。「mail」がつくオブジェクトを調べてみると、2つ出てきました。
メールそのもののオブジェクトを調べたいので、上の方のMailItemオブジェクトの方がソレっぽいです。展開してみると、いかにもメールが持つ機能といったメソッドがたくさん出てきました。
無事に調べることができました。
<関連記事>
- VBA OLE① OLEの目的と概念
- VBA OLE② コードの作り方 Internet Explorerの例
- VBA OLE③ 調べる力
- VBA OLEを使ってメールを配信する
- VBA 二段から三段へ~OLEオートメーションを確実に身に付ける勉強方法 3つの手順~
- VBA 三段から四段へのステップアップ ~APIを身に付ける~
<お知らせ>
Excel VBAでクラスやオブジェクトの概念と使い方を丁寧に解説し、ワンランク上の実力を目指すガイドを書きました。この本で本物の実力を身に付けて一皮むけてみませんか?
books.rakuten.co.jp