Outlookには「ユーザー設定フォーム」(Custom Forms)機能があり、メールやタスクといったアイテムを作成する際のユーザーインターフェイスをカスタマイズすることができます。
- Microsoft Outlook 2002 を使用したユーザー設定フォームの開発 (第 1 部)
- https://msdn.microsoft.com/ja-jp/library/aa155722.aspx
- Microsoft Outlook 2002 を使用したユーザー設定フォームの開発 (第 2 部)
- https://msdn.microsoft.com/ja-jp/library/aa155728.aspx
フォームにはフィールドを配置でき、ユーザー定義フィールドによって、任意の情報をアイテムに付加させることができます。
今回は、ユーザー設定フォームに基づいてメールを作成し、ユーザー定義フィールドの値を設定するマクロを紹介します。
メッセージ クラスの確認
マクロからユーザー設定フォームを取扱い際、まずはメッセージ クラスをフォームの選択画面で確認しておく必要があります。
VBAコード
ItemsオブジェクトのAddメソッドの引数にメッセージ クラスを指定することで、指定したユーザー設定フォームに基づいてメールを作成できます。
また、UserPropertyオブジェクトのValueプロパティを利用することで、ユーザー定義フィールドの値を設定することができます。
Public Sub Sample01()
With Application.GetNamespace("MAPI").GetDefaultFolder(olFolderDrafts)
'メッセージ クラスを指定してアイテム作成
With .Items.Add("IPM.Note.CustomMessage") 'Outlook.MailItem
.Subject = "テストメール"
.Body = "あいうえお" & vbNewLine & "かきくけこ"
'UserPropertyオブジェクトのValueプロパティでユーザー定義フィールドの値を設定
.UserProperties("郵便番号").Value = "903-0815"
.UserProperties("住所1").Value = "沖縄県那覇市首里金城町1-2-3"
.UserProperties("住所2").Value = "テストビル10階"
.Display
End With
End With
End Sub
InspectorオブジェクトのModifiedFormPagesプロパティからPageオブジェクトを取得し、UserForm上のコントロールのようにフィールドを扱うこともできます。
Public Sub Sample02()
Dim frm As Object
With Application.GetNamespace("MAPI").GetDefaultFolder(olFolderDrafts)
'メッセージ クラスを指定してアイテム作成
With .Items.Add("IPM.Note.CustomMessage") 'Outlook.MailItem
.Subject = "テストメール"
.Body = "あいうえお" & vbNewLine & "かきくけこ"
'「P.2」ページのコントロール操作
Set frm = .GetInspector.ModifiedFormPages("P.2") 'MSForms.UserForm
frm.Controls("TextBox1").Value = "903-0815"
frm.Controls("TextBox2").Value = "沖縄県那覇市首里金城町1-2-3"
frm.Controls("TextBox3").Value = "テストビル10階"
.Display
End With
End With
End Sub
























この記事へのコメントはありません。