Outlook VBA-3.OutlookVBAの基本

スポンサーリンク
VBAでコーディングを行う上で、基本的に知っておくべき内容を紹介します。 もっとも重要な要素はオブジェクトの存在です。このオブジェクトについて解説します。 VBAでコーディングをする際はオブジェクトを知ることが重要です。Excelではワークブック、ワークシート、セルが重要なオブジェクトですが、Outlookでも同じように重要なオブジェクトがあります。それがメールアイテム、ミーティングアイテム、フォルダーオブジェクトです。 前回の内容はこちら

VBA意識すべき重要な要素:オブジェクト

Excel VBAでのオブジェクトは、Workbook、Worksheet、Rangeなどがありました。Workbookはエクセルファイル自身を表し、それは複数のWorksheetを持ちます。また、WorksheetはたくさんのCell(別名:Range)をもっています。ここで、より下位のオブジェクトを利用するためには、より上位のオブジェクトから階層的に呼び出す必要がありました。 たとえばWorkbookの中にある一つのWorksheet、さらにその中の特定のセルを利用するためには次のようなコーディングを行います。
Public sub main() Dim i as integer Dim ObjWB as Excel.workbook Set ObjWB = Activeworkbook ObjWB.worksheets(1).cells(1,i) = “こんにちは” Set ObjWB = Nothing End sub
最初にWorkbookとして、開いているWorkbook(Activeworkbook)を指定し、そこから階層的にシート、セルへと結び付けていきます。 このようにVBAでは、「自分が使いたい要素がどのオブジェクトに紐づいているか」「どのように呼び出すか」を考えることが、その理解を深めます。

VBAでコーディングする際の注意事項

一方で気を付けなければいけないのが、VBAは省略した記載ができる、という事実です。つまり、親オブジェクトの要素を省略した形でコーディングすることができます。実際のコーディング例はこちらです。
Public sub main() Dim i as integer i = 1 Cells(1,i) = “こんにちは” End sub
この例ではWorkbookも、Worksheetも指定していません。直接Rangeオブジェクト(Cell)に対して値の代入をしていますが、これでもおおよその場合正常に動作します。これは原理を知ったうえで使えば大変便利に使うことができます。開発時のコーディング文字数が相当減ります。しかしこの原理を適切に理解するのはかなり難しいため、エラーの混入の原因になりやすいです。 よってこのようにVBAではいろいろ省略したコーディングが可能ではありますが、できる限り省略しない書き方を心がけてください。

Outlook VBAでも重要なオブジェクトが存在する

Outlookにも同様にオブジェクトが存在していて、これを通じて容易にOutlookの各処理を操作することができます。代表的なオブジェクトを紹介します。こまかな使い方はおいおい紹介します。まずは「そういうオブジェクトがある」ということ、「何か処理をするときにこれらを呼び出すことを意識すればよい」ことを知っておいてください。
  1. MailItem メールをさすオブジェクト
  2. MeetingItem 会議予定をさすオブジェクト
  3. TaskItem タスクをさすオブジェクト
  4. Outlook.folder Outlook内で扱われるフォルダをさすオブジェクト
  5. ActiveInspector 現在開いているアイテムをさすオブジェクト

オブジェクトの種類を把握することはVBAを学ぶ上で大事

これらオブジェクトは持つ要素(プロパティ)や実装できるイベントなどがそれぞれ定義されています。それぞれのプロパティやイベントは暗記しなくて良いと思っていて、使いたいときにインターネットでググればよいと思います。しかし、オブジェクトの種類くらいは知っておかないと、ググることもコーディングの方針を考えることもできないです。 ですので今回例に挙げたようなオブジェクトは知っておくとよいでしょう。

コメントを残す