質問: vbaの初心者なのですが、エクセルというアプリケーションの範囲で何ができるかについては少しずつ、書きながら理解をすることが(牛歩ですが)できるようになってきました。 もっと世界を広げたいという思いから、どんなオブジェクトがあり、または利用可能であるのかと調べていくうちに、 メーラーを起動してメールを送るや正規表現まで使えることを知りました。 A) これらは例えば「vba オブジェクト 一覧」と言う検索をしても出てこないのですが、このようなオブジェクトは通常のオブジェクト(workbookオブジェクトやApplicationオブジェクト)と言った類のものとは異なるのでしょうか?また、これらのエクセルを飛び越えるようなオブジェクトを含めてどのようなものがあるのかを知りたい場合にはMS等が横断的にこれを公表しているドキュメントはあるのでしょうか?MS)のDocs等を見ても上記のMailitemオブジェクトなどが出てこないため、どこへ行けば横断的な情報にアクセスできのかがわかりませんでした。 B)また、少し角度の異なる質問なのですが、Dir関数を普段当たり前のように使うのですが、最近オブジェクトについて少し立ち止まって考えるようになってから、少し疑問に感じております。通常のエクセルないの操作ですらApplicationオブジェクトのようにvba上特定のオブジェクトにアクセスしてどのプロパティやメソッドを利用していると思うのですが、Dir関数に関しては、そもそもエクセルの外に飛び出しシェル的動作(フォルダを作るや削除するなど)にも関わらず、エクセルアプリケーションを利用して実行できてしまいます。 特にXXX.dirのように何かシェルに触るような特別なオブジェクトを呼び出してはいないと思うのですが、Dir関数はどのオブジェクトにも属していないと言うことなのでしょうか?また、オブジェクトに属していないとすれば、どのようにエクセルはOSのそのような根本的な動作ができてしまうのでしょうか、、稚拙な質問の仕方で本当に申し訳ございません。 よろしくお願い申し上げます。
回答: 「Excel オブジェクトモデル」で Object model (Excel) にたどり着きます。 「Outlook オブジェクトモデル」で Outlook object model overview にたどり着きます。 VBA といっても Excel と Outlook では違います。VBA にはオブジェクトに関連付けられたメソッドと、オブジェクトと関係ない関数の両方があります。