<Outlookの重要度フラグ .Importance = olImportanceHigh>
どうも、三流プログラマーのKen3です。 今回は、 Outlookで重要度のフラグを探ったお話です。 ※探し方がヘタでした(笑) たいした内容じゃないのですが。/* * 1.今回のキッカケ */
http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi の掲示板に、 > Outlookのメール操作の中で、 > メールの送信は出来るのですが、 > その送信メールの「重要度フラグ」をプログラム(VB)で操作することは > 可能なのでしょうか?? ---- と書き込みをもらいました。 重要度のフラグ、少し興味あったので、探ってみました。/* * 2.いつもの探り方(失敗したけど、参考になればと思い) */
Outlookを起動します。 起動後、Alt+F11を押します。 すると、VBAのいつものよく見かける画面が表示されます。 ここで、適当な変数を定義します。 Dim aa as MailItem と、メールのアイテム型の変数を定義します。 あとは、いつものように、aa.とピリオドを打つと、 プロパティやメソッドが表示されるので、 それらしいプロパティ・メソッドの名称を選択します。 おっ、と思ったのが、 の、 .FlagStatus フラグのステータス これでしょうと確認もしないで、決め付けて、メルマガ向け画面コピーも行う。 ※オイオイ気がハヤイって、、、 プロパティにカーソルを合わせ、F1のヘルプを見る。 あれれ・・・重要度のフラグじゃないみたいです。。。 ハズシタ(笑) 探り方、外したけど、こんな感じで、 該当するオブジェクト型の変数を定義 Dim aa as MailItem その後、 aa. と、候補を表示させ、それらしいのにアタック。 aa.FlagStatus と選択後、カーソルを合わせてからF1のヘルプを見る。 そんな流れでいつもプロパティ、メソッドを探ってます。/* * 3.ネットを検索する */
いまだに、うまいキーワードで検索できないけど、 ネットで検索して、サンプルを拾ってきて、自分のものにする方法もあります。 MailITEM 重要度 の2つのキーワードで検索すると、下記のページがヒットする。 ^^^^^^^^^^^^^^^ http://www.microsoft.com/japan/msdn/library/ja/modcore/html/deovrworkingwithoutlookfoldersitems.asp >Restrict メソッドを使用する場合、角かっこで囲んだ Outlook フィールド名を使用 >して検索の抽出条件を指定します。And、Or、Not などの演算子を使用して複数の抽出 >条件を結合できます。たとえば、次のサンプルでは、過去 7 日間内に送信された、 >重要度の高い未読メール アイテムを検出します。 > >Dim fldMail As Outlook.MAPIFolder >Dim itmItems As Outlook.Items > >strCriteria = "[SentOn] > '" & (Date - 7) _ > & "' And [UnRead] = True And [Importance] = High" > >Set fldMail = gnspNameSpace.GetDefaultFolder(olFolderInbox) >Set itmItems = fldMail.Items.Restrict(strCriteria) このサンプルって、 今あるメッセージの検索ぽいので却下(笑)、たぶん受信済み未読を検索すると思う でも、ここから、 [Importance] = High" が怪しいとにらみ、これだろとまた勝手に思い込む(笑) Importance プロパティをヘルプで探る。 ~~~~~~~~~~~~~~~~~~~~~ >Outlook アイテムの相対的な重要度を表す OlImportance クラスの定数を >設定します。このプロパティは、MAPI プロパティの >PR_IMPORTANCE に対応しています。値の取得および設定が可能です。 > >使用できる定数は、次に示す OlImportance クラスの定数のいずれかです。 >olImportanceHigh >olImportanceLow >olImportanceNormal > >expression.Importance > >expression 必ず指定します。対象となるオブジェクトへの参照を表すオブ >ジェクト式を指定します。 と、やっと目的のプロパティにたどり着いたみたいです。
Sub aaa() Dim myOlApp As Outlook.Application Dim myitem As MailItem Set myOlApp = CreateObject("Outlook.Application") Set myitem = myOlApp.CreateItem(olMailItem) myitem.To = "test@ken3.org" myitem.Body = "test" myitem.Importance = olImportanceHigh myitem.Display End Sub |
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 'メールアイテム作成後、重要度を高olImportanceHigh=2にする objMAIL.Importance = 2 'olImportanceHigh=2 strMOJI = "こんにちは" & vbCrLf _ & "プログラマーの愚痴、教えまっせ?" & vbCrLf _ & "http://www.ken3.org/ よろしく(笑)" objMAIL.To = "test@ken3.org" '宛先 objMAIL.Subject = "未承諾広告※(笑)" '件名 objMAIL.Body = strMOJI '本文の代入 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のサンプルコード]/
広告-[通販人気商品の足跡]