[三流君] −−> [VBAで楽しく] −−> [VBA Outlook 操作]
−−> No.161 Outlook VBAでフラグ作成 .FlagStatus .FlagRequest .FlagDueBy

Outlook VBAでフラグ作成 .FlagStatus .FlagRequest .FlagDueBy

発行内容

Outlook VBAでフラグ作成 .FlagStatus .FlagRequest .FlagDueBy

どうも、三流プログラマーのKen3です。

今回は、
Outlookのメールで、フラグの作成にチャレンジしてみます。

http://www.ken3.org/vba/lzh/vba161.lzh
にサンプルoutlookFLG.xlsを圧縮しておきます、
Excel2000とOutlook2000版ですが使ってみてください。

三流君VBAでOutlookを操作する
http://www.ken3.org/cgi-bin/group/vba_outlook.asp
上記関連リンクももよろしくね。

/* * 1.今回のキッカケ */

掲示板に下記のメッセージを貰いました。 ------ > No.55 Outlookを操作してメールを送りたい を参考に、選択したメール本文を >引用したメールを作成するマクロにチャレンジし、無事、動作することができま >した。<m(__)m> > しかし、その引用したメール作成処理を行ったかどうかが判らなくなってしまう >ため、現在は処理を行った元メールに手作業でフラグを付けている状態です。 > その為、フラグを付け忘れてしまうこともあり、この手作業をマクロで組みたい >のですがご教授お願いいたします。 ------ ご教授お願い〜は、基本的に嫌いなフレーズなんだけど、、、 (※なんか掲示板で偉そうにしている人達が好きそうなフレーズなので私は嫌いです) なんて愚痴系( http://www.ken3.org/guchi/ 参照)みたいなこと言ってないで、 アウトルックのメールのフラグ関係 を 今回は私の攻略法含めて進めてみます。 (本文無駄に長いので拾い読みしてください)

/* * 2.Outlookのオブジェクトの探り方 */

これも、私の我流な三流的攻略法だけど、 Outlookのオブジェクトの探り方は、 Outlookを起動します。 ^^^^^^^^^^^^^^^^^^^^^ 起動後、Alt+F11を押します。 すると、VBAのいつものよく見かける画面が表示されます。 ※ExcelやAccessで参照設定したあとでもOKです。 ここで、探りたいオブジェクトの適当な変数を定義します。 Dim aa as とか入力すると、なんと、mailitemとか出てきます。 ↑オブジェクトの変数が表示された例 そこで、 Dim aa as MailItem と、メールのアイテム型の変数を定義します。 ※これは、オブジェクト名前とかで狙いを付けて、 まぁ、失敗してもやり直すって感じで。 (女性をデートの誘う時もこれくらい気軽に?できたらいいね(オイオイ)) 次は、狙いをつけた女性の身に付けているブランド品や行動パターンじゃなくって、 あたりをつけた、オブジェクトのプロパテイやメソッドを探ります。 ここは、いきなりアタックって感じで、 Dim aa as MailItem と定義してから、aa.とaaさんにアタックします。 すると、プロパティやメソッドが表示されるので、 それらしいプロパティ・メソッドの名称を選択します。 おっ、aaさんの行動は(メソッドは)これだとか、 ここも経験や当てずっぽうに推理します。 ※出たとこ勝負もアリでしょう or パターンでなんとなくわかったり・・・ ↑MailItemの.FlagStatus フラグのステータスを探して、選択したところです。 次は、そのプロパティにカーソルを合わせ、F1のヘルプを見る。 あれれ・・・ハズシタ(笑)フリダシニ戻る や OK、目的のプロパティ、メソッドだった、となります。 探り方、まとめるとこんな感じで、 該当するオブジェクト型の変数を定義 Dim aa as MailItem その後、 aa. と、候補を表示させ、それらしいのにアタック。 aa.FlagStatus と選択後、カーソルを合わせてからF1のヘルプを見る。 そんな流れでいつもVBAのプロパティ、メソッドを探ってます。 ※もっと効率の良い、 女の子(オブジェクト)へのアタック方法もあるんだろうけど・・・ あとは、世の中のチャラ男やナンパ男の成功例を見て自分も真似したいので、 GoogleやYahooで探したプロパティ、メソッドをキーワードにして事例を検索します。 すると、 .xxxxx プロパティはひどい女だったよ、 期待させておいてボッタクリのバグかよ・・・ とか 口説き落とすテクや扱い方の注意事項が載ってます。 まぁ、そのまま真似してもいいし、アレンジしてもいいし。

/* * 3.Flag関係のプロパティを探ってサンプルを作成 */

Flag関係のプロパティを探って、F1でヘルプをみたりして、 サンプルを作成してみました。 Flag***と付いたプロパティを表示させて、F1を押していきます。 objMailItem.FlagDueBy >このメッセージのアクションに設定されている期限を設定します。 おっと、期限かぁ、 objMailItem.FlagRequest は、 >メッセージに対して要求されたアクションを設定します。 >このプロパティは、自由形式のテキスト フィールドです。 だってさ objMailItem..FlagStatus プロパティ >フラグを設定します。使用できる定数は、 >OlFlagStatus クラスの >olFlagComplete (1)、olFlagMarked (2)、および olNoFlag (0) >のいずれかです。 >値の取得および設定が可能です。長整数型 (Long) の値を使用します。 ヘルプを見ると通常はサンプルがついているので、 それを参照するのが正攻法で早いんだけど、 今回のflg***系はサンプルが無かったです・・・ サンプル無いのはツライケド、だいたいの攻略イメージは、 .FlagStatus プロパティ に olFlagMarked (2) フラグ作成(Marked)を立てる。 .FlagRequest にメッセージをセットする。 .FlagDueBy は 期限 これをセットしていけばいいのかな。 なんとか、作成したサンプルです。
Sub test送信メール作成()

    Dim oApp As Object    'アプリケーションオブジェクト
    Dim objMAIL As Object 'メールのオブジェクト
    Dim strMOJI As String '本文

    'アプリケーションオブジェクトの作成
    Set oApp = CreateObject("Outlook.Application")

    Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
    
    strMOJI = "こんにちは" & vbCrLf _
            & "ジッタリンジンのCD返してください" & vbCrLf _
            & "よろしくお願いします"
    
    objMAIL.To = "test@ken3.org"           '宛先
    objMAIL.Subject = "TEST Mail CD返してください"  '件名
    objMAIL.Body = strMOJI                 '本文の代入
    'VBA161でFLG関係のテスト
    objMAIL.FlagStatus = 2 'olFlagMarked (2)をセット参照設定時は定数で
    objMAIL.FlagRequest = "CD返却の件連絡ください" 'フラグ内容をセット
    objMAIL.FlagDueBy = DateAdd("d", 5, Now) '期限は5日後をセット
    '↑ここまです(VBA161で追加)

    objMAIL.Display   '途中で編集したい時(メール表示してみた)

    'おまけでOutlook表示
    Dim myNameSpace As Object
    Dim myFolder As Object

    Set myNameSpace = oApp.GetNameSpace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定

    myFolder.Display  '表示

End Sub
サンプルの実行結果は↓ です。 今回のポイントは、 ^^^^^^^^^^^^^^^^^^ objMAIL.FlagStatus = 2 'olFlagMarked (2)をセット参照設定時は定数で objMAIL.FlagRequest = "CD返却の件連絡ください" 'フラグ内容をセット objMAIL.FlagDueBy = DateAdd("d", 5, Now) '期限は5日後をセット の3行です。 単に調べたプロパティに値をセットしただけでした。 objMAIL.FlagStatus = 2 と直値で2をセットしてますが、参照設定していれば、 objMAIL.FlagStatus = olFlagMarked が正しい書き方です。

/* * 4.終わりの挨拶 */

今回は、 Outlook VBAのオブジェクトの攻略方法 と メールへのフラグ設定サンプルでした。 http://www.ken3.org/vba/lzh/vba161.lzh にサンプルoutlookFLG.xlsを圧縮しておきます、 Excel2000とOutlook2000版ですが使ってみてください。 三流君VBAでOutlookを操作する http://www.ken3.org/cgi-bin/group/vba_outlook.asp 上記Outlook関連リンクももよろしくね。 何か読者の心に残れば、うれしいです。 *私の独り言をうまく消化してくださいね。 はぁ〜、誰か私に女性の攻略方法教えてよと独り言を書きつつ、 人に聞く前に自分で少しは努力したのかよって読者の心の声をすぐに聞きつつ 三流プログラマー Ken3でした。


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

種類別のリンク や 広告など

気になったジャンル↓を選択してください。

人気記事(来場者が多いTOP3):
[VBAでIE,WebBrowserを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[Access から Excel 連携 CreateObject("Excel.Application")]・・・AccessからExcelを操作したりデータの書き出しなどです
[VBAでOutlookの操作 CreateObject("Outlook.Application" )]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[Excel UserFormを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
[Excel関係 関数、その他]・・・その他Excel関係です

Access関係:
[Access UserForm/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[Access レポート操作]・・・レポートを操作してみました
[Access クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[VBAでテキストファイル(TextFile)の操作]・・・普通のテキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う]

仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力]

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [VBAやASPのサンプルコード]/ 広告-[通販人気商品の足跡]



[三流君(TOP ken3.org へ戻る)] / [VBA系TOPへ] / [VBA系バックナンバー目次へ移動]