Office関連

ユーザー設定フォームに基づいてメールを作成するOutlookマクロ

Outlookには「ユーザー設定フォーム」(Custom Forms)機能があり、メールやタスクといったアイテムを作成する際のユーザーインターフェイスをカスタマイズすることができます。

フォームにはフィールドを配置でき、ユーザー定義フィールドによって、任意の情報をアイテムに付加させることができます。

今回は、ユーザー設定フォームに基づいてメールを作成し、ユーザー定義フィールドの値を設定するマクロを紹介します。

メッセージ クラスの確認

マクロからユーザー設定フォームを取扱い際、まずはメッセージ クラスをフォームの選択画面で確認しておく必要があります。

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

関連記事

  1. Office関連

    Excel 2013で追加された「UNICHAR」関数を使って特殊文字を表示する。

    「Excel 2013で追加された「WEBSERVICE」関数を使って…

  2. Office関連

    [Outlook VBA]最小化起動時にApplication.Startupイベントが発生しない。…

    Outlook起動時、すべてのアドインが読み込まれた後に発生するApp…

  3. Excel

    ディスプレイのサイズを取得するVBAマクロ

    「VBA ディスプレイ 幅 高さ」といったキーワード検索でのアクセスが…

  4. Office関連

    [Excel Services ECMAScript]ActiveWorkbookのパスを取得する。…

    埋め込んだExcelワークブックのパスを取得するコードです。 (さ…

  5. Office関連

    選択中の図形の書式設定を一括変更するPowerPointマクロ

    PowerPointで複数の図形の書式を一つずつ変更するのが面倒だった…

コメント

  • コメント (0)

  • トラックバックは利用できません。

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP