どうも、三流プログラマーの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 |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]