タスクの依頼を送信するマクロ


コメントにて以下のご要望をいただきました。


はじめまして。
SQLServer内にあるデータをプログラムからメールで送信する際にOutlook2013のタスク依頼として送信する事は実現できるでしょうか。
メール送信自体はすでに実現出来ているのですが、これをタスク依頼として送信したいと考えています。
こちらで公開されているマクロとは違うかもしれませんが、タスク依頼の仕組みがわかればご教示頂きたく思います。

プログラムはVB6、Access2013、C#のいずれか
Outlookは 2013を利用しております。


Outlook 2013 でタスクの依頼を行う場合、以下のような操作をします。

  1. 新規にタスク アイテムを作成します。
  2. 件名や本文などを入力します。
  3. [タスクの依頼] をクリックしてタスクの依頼に変更します。
  4. 宛先を追加します。
  5. [送信] をクリックしてタスクの依頼を送信します。

マクロやプログラムでタスクの依頼を行う場合も上記と同様の処理を Outlook のオブジェクト モデルで実装します。

以下は Access の VBA マクロで実装した例です。現在のデータベースの "テーブル1" というテーブルに宛先、件名、本文を格納した状態で実行すると、タスクの依頼を送信します。
自分のタスク フォルダーに依頼したタスクのアイテムを保存する必要がなければ、.Save を .Delete にしてください。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub SendAsTaskRequest()
    Dim appOlk 'As Outlook.Application
    Dim dbCur As DAO.Database
    Dim strQuery As String
    Dim rsData As DAO.Recordset
    '
    Set appOlk = CreateObject("Outlook.Application")
    ' 現在のデータベースのテーブル1からデータを取得
    Set dbCur = Application.CurrentDb()
    strQuery = "SELECT [宛先],[件名],[本文] FROM [テーブル1]"
    Set rsData = dbCur.OpenRecordset(strQuery)
    Do While Not rsData.EOF
        ' タスクの作成
        Set objTask = appOlk.CreateItem(3)
        With objTask
            ' 件名・本文追加
            .Subject = rsData![件名]
            .Body = rsData![本文]
            ' タスクの依頼に変更
            .Assign
            ' 受信者を追加
            .Recipients.Add rsData![宛先]
            .Recipients.ResolveAll
            ' 送信
            .Send
            .Save
        End With
        rsData.MoveNext
    Loop
End Sub

マクロの登録方法やメニューへの追加について

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中