読者です 読者をやめる 読者になる 読者になる

三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク



Outlook処理 途中で作成ミスに気がついたが...

VBA Outlook 動画解説

4.処理をつなげて 呼んでみた And 作成ミスに気がついた...

4.1 3つの処理が連続で走るようにつなげてみた。

作業の動画
三流君 2012/02/11 outlook処理のテスト結果 その1 - YouTube

↑これは、あまり意味ない動画ですね
↓のソースを見たほうが速いかなぁ?

ソース

'連絡先を予定表にドラックAndドロップ後に
'Application.ActiveInspector.CurrentItemで開いている会議予定
'から 開始 終了 名前を抜き出し、名前を件名として 仕事タスク と 予定表を作成する
' 解説は http://d.hatena.ne.jp/ken3memo/20120211/1328906604
Sub 会議予定を仕事と予定に変換()

    Dim oITEM As AppointmentItem
    
    '連絡先からドロップ後、予定表が開いているはずなので、
    Set oITEM = Application.ActiveInspector.CurrentItem
    '↑で、会議の予定 As AppointmentItem を取得

    '開始時間・終了、出席者の名前を取得する
    Dim dSTART As Date     '開始
    Dim dEND As Date       '終了
    Dim strNAME As String  '名前
    
    '表示中の会議 予定表アイテムからデータを取得する
    dSTART = oITEM.Start
    dEND = oITEM.End
    strNAME = oITEM.Links.Item(1).Name
    
    '予定表を閉じる
    oITEM.Close olDiscard  '保存しないで閉じる・いったん破棄する

    'タスク 仕事にセット
    Call test0211_仕事の作成(dSTART, dEND, strNAME)  '値を渡して、To Do 仕事を作成

    '予定を作成
    Call test0211_予定の作成(dSTART, dEND, strNAME)  '値を渡して、カレンダー予定を作成

End Sub

'開始、終了、名前を受け取り、名前を件名とした仕事・タスクを作成する
' 解説は http://d.hatena.ne.jp/ken3memo/20120211/1328906778 を見てください。
Sub test0211_仕事の作成(dSTART As Date, dEND As Date, strNAME As String)  '新規に仕事 タスクを作る

    Dim oITEM As TaskITEM '型をAs TaskITEM にする
    
    Set oITEM = Application.CreateItem(olTaskItem) '新規に仕事のITEMを作成
    oITEM.Display  '画面に表示するときは.Display

    'データをセットする
    oITEM.Subject = strNAME  '件名として、名前をセットする
    oITEM.Body = "本文" & vbCrLf & vbCrLf & "仕事"
    oITEM.StartDate = dSTART  'スタート
    oITEM.DueDate = dEND      '終了日
    '↑他にもプロパティがたくさんあるけど・・

    'タスクを登録
    oITEM.Close olSave  'olSaveで閉じるときに保存(セーブして終了)

End Sub

'開始、終了、名前を受け取り、名前を件名とした予定表 予定を作成する
' 解説は http://d.hatena.ne.jp/ken3memo/20120211/1328907107 を見てください。
Sub test0211_予定の作成(dSTART As Date, dEND As Date, strNAME As String)  '新規に予定 を作る

    Dim oITEM As AppointmentItem  '予定表
    
    Set oITEM = Application.CreateItem(olAppointmentItem) '新規に予定のITEMを作成
    oITEM.Display  '画面に表示するときは.Display

    'データをセットする
    oITEM.Subject = strNAME  '件名
    oITEM.Body = "本文" & vbCrLf & vbCrLf & "予定"
    oITEM.Start = dSTART  'スタート
    oITEM.End = dEND    '終了日 テストで27時間後
    '↑他にもプロパティがたくさんあるけど・・
    
    '予定を登録
    oITEM.Close olSave  'olSaveで閉じるときに保存(セーブして終了)

End Sub

4.2 OutlookメニューにVBAの実行を追加する

コマンドバーに追加?

操作動画
Outlook 2007 コマンドバーにVBAの実行を追加 手作業 - YouTube

4.3 流れを確認する(連絡先を仕事・予定にセット)

  
・予約の連絡を受ける
  ↓
・連絡先から名前を選択、予定表にドラッグandドロップする
  ↓
・会議連絡のフォームでマクロ実行のボタンを押す

テスト結果
三流君 2012/02/11 outlook処理のテスト結果 その2 - YouTube

4.4 処理の間違いに気がつく

ア.足りない処理、顧客IDとふりがな を 追加する処理。※現在名前しかセットしていない
(連絡先を名前でサーチして、顧客IDとふりがなを取得しないといけない)

イ.根本的に処理が間違っていた?
本当の処理の流れ、質問は、、、

間違い、他の操作動画を載せる

↓いろいろな操作方法があるので、Outlookって奥が深いですね。
Outlook 2007 ドラックAndドロップ 操作イロイロ - YouTube

※ドラック アンド ドロップのタイミングがVBAで取れるか?探って出直しですね・・・

終わりの挨拶

いやぁ〜、、、脳内自分語垂れ流しで
ハマってしまって
かなり恥ずかしいなぁ(笑)

少し深く調べてから 出直しですね(笑)

処理を少し軌道修正した続きは
Outlook VBA 選択された連絡先の氏名+フリガナを使い、仕事を作成 - ken3memo (三流君)
を見て笑ってください。