前回のOutlook VBAのオブジェクトの概要に続き、プロパティとメソッドについて説明をカンタンにいたします。
もくじ
プロパティについて
オブジェクトにはフォルダやメール、それに付随するアイテムなどがあり、それらを参照したり変更したり操作をする場合にはプロパティとメソッドを使うことになります。
オブジェクトが持っている各種情報はプロパティといいます。
プロパティは次のような構文となります。
オブジェクト.プロパティ名
例えば前回オブジェクトで説明しました、手前で表示されているメールアイテムを取得する場合は以下のコードとなりますが、
Set objWord = ActiveInspector.CurrentItem
取得した情報の内、本文のみを参照したい場合はCurrentItem末尾に本文プロパティを示す「.Body」を追加します。
Set objWord = ActiveInspector.CurrentItem.Body
メールには件名やら本文やら宛先など値が入っているわけですが、それら値がプロパティということになります。
他にも以下のような内容が参照可能です。
CurrentItem.Subject:件名
CurrentItem.To:宛先
CurrentItem.receivedTime:受信日時
CurrentItem.Attachments:添付ファイル
また末尾に「Count」プロパティをつければコレクション内に含まれるアイテムの件数を出力することができます。
Application.GetNameSpace(“MAPI”).GetDefaultFolder(6).Items.Count
メソッド
次はメソッドです。メソッドはオブジェクトに対する命令のことで、オブジェクトの動作を指定することを意味します。例えば受信トレイなどフォルダを追加したり削除したりするとしたら、受信トレイのフォルダがオブジェクトで、追加、削除するという「何をするか」という部分がメソッドということになります。
メソッドは次のような構文となります。
オブジェクト.メソッド名
次に例をみてみましょう。
VBAで「受信トレイ」にフォルダを追加し、フォルダ名とサブフォルダ含む件数を出力するものです。
Sub AddFolder()
Set myNamespace = Application.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
Set myNewFolder = myFolder.Folders.Add("マイフォルダ")
Debug.Print myFolder
Debug.Print myFolder.Folders.Count
End Sub
引数の「olFolderInbox」は受信トレイフォルダの種類に該当しますので、受信トレイフォルダを取得したのち、myFolderオブジェクトに受信トレイフォルダをセットします。
そしてmyFolderオブジェクトへフォルダを追加することを「.Add」で指定します。つまりこの「.add」がメソッドということになります。
メソッドの引数
続いてメソッドの引数について説明します。引数とは、メソッドの動作を細かく指定する内容のことです。
また、メソッドには反対に引数を必要としないもの、引数が任意のものもあります。先ほどの例で挙げました「.Add(“マイフォルダ”)」は引数を必要するメソッドで「”マイフォルダ”」が引数に該当します。
構文は以下の通りです。
オブジェクト名.メソッド名(引数)
名前付き引数について
名前付き引数とは、名前が定義されている引数のことです。
先ほどの例で挙げました「GetDefaultFolder(olfolderinbox)」ですが、「olfolderinbox」は前述のとおり受信トレイフォルダと定義されているものですので、こちらが名前付き引数ということになります。
「GetDefaultFolder」メソッドの詳細について別記事にまとめていますので、よろしければこちらもご参照ください。
【OutlookVBA】GetNamespaceメソッドのフォルダの種類と引数はなに?サンプルVBAで解説!
構文は以下の通りです。
オブジェクト名.メソッド名(名前付き引数)
値を返すメソッド
メソッドには実行するだけと値を返すメソッドがあります。
Debug.Print myFolder
としますと、イミディエイトウィンドウに「受信トレイ」と表示され、
Debug.Print myFolder.Folders.Count
と「Count」プロパティを指定すればフォルダの数をカウントし、今回はフォルダを一つ追加していますので、「1」と表示されます。
構文は以下の通りです。
変数 = オブジェクト名.メソッド名
オブジェクトを返すメソッド
戻り値は値を以外にもオブジェクトを返します。
例で挙げた以下のコードが該当し、一つ目は受信トレイオブジェクトを「myFolder」へ返し、2つ目は追加したマイフォルダのオブジェクトを「myNewFolder」へ返す結果となっています。オブジェクト格納先の「myFolder」、「myNewFolder」はオブジェクト変数と呼ばれ、さらにオブジェクトとしてメソッドで操作を行うことができます。
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
Set myNewFolder = myFolder.Folders.Add(“マイフォルダ”)
構文は以下の通りです。
Set オブジェクト変数 = オブジェクト名.メソッド名
まとめ
今回はオブジェクトのプロパティとメソッドについて解説しました。オブジェクトを細かく制御したり値を参照するときに使用する概念と覚えてもらえばと思います。次回はオブジェクトに対し処理や操作を行う「イベント」について説明をしたいと思います。
コメントを残す