[三流君] −−> [VBAで楽しく] −−> [VBA Outlook 操作]
−−> No.101 Outlookの重要度フラグ .Importance = olImportanceHigh

Outlookの重要度フラグ .Importance = olImportanceHigh

メルマガ発行内容

<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
.Importance = olImportanceHigh が、重要度 高みたいです。 試してみてください。

/* * 4.ExcelからいつものCreateObjectだと定数が参照できない */

参照設定が正しくされていると、 みたいに、定数の候補が出て、コーディングもしやすいです。 Outlook2000,Outlook2002と環境を行ったりきたりするので、 参照設定をしてない場合は、 olImportanceHigh など、定数が使えません(エラーが発生します) まぁ、そんな時は、OutlookのVBA編集画面で、 ? olImportanceHigh 2 ? olImportanceLow 0 ? olImportanceNormal 1 なんてやって、定数を求めて、 objMAIL.Importance = 2 'olImportanceHigh=2 みたいに直値で書くか、 Const olImportanceHigh = 2 '重要度=高 と、自分でConst定義するか・・・ Excel VBAで、参照設定無しで重要度(高)のメールを作成するサンプル。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 'メールアイテム作成後、重要度を高olImportanceHigh=2にする objMAIL.Importance = 2 'olImportanceHigh=2 と、メールアイテムのオブジェクトに対して重要度を2(高)に設定してます。
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
できたら、直値で作成するよりも、 参照設定をして、キチント作った方がいいです。 あと、社内のOfficeのバージョンもそろっていたほうが、なにかと楽かなぁ。 まぁ、世の中、混在環境や様々なマシーン構成があるので、 メルマガサンプルで私が参照設定を避けたがるみたいに、 いつもAs Objectでやるのも手だけど、あまりお薦めは出来ません。 Set objMAIL = oApp.CreateItem(0) objMAIL.Importance = 2 とか、書かれても、あとで見ると?マークになってしまう。 Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 'メールアイテム作成後、重要度を高olImportanceHigh=2にする objMAIL.Importance = 2 'olImportanceHigh=2 と私はコメントでかわしているが、、、、 ---- ここから 下、宣伝です ---- ※今の会社の教育体制に疑問を感じた、ボーナス少なかった・・なんて人は、  匿名で自分の価値を下記で探ってみては?  まぁ、辞めても地獄、残っても飼い殺しかもしれないけど・・・ -【けんぞう!】--------------------------------------------------------- 転職関係、在宅プログラマー、SOHOの広告まとめました、匿名で職探せます。 http://www.ken3.org/etc/500yen/zaitaku.html いろいろとあるので転機の人はぜひ 『だだ、広告料稼ぎたいだけだろ、紹介料300円〜1000円の小金稼ぎ』 ギクっ、、、バレた(笑)登録料無料、匿名で探せるので在宅で小金稼ぎの人も見てね ------------------------------------------------------------------------  ※ボーナス後なのか、登録件数月末から4件もあった・・・  残るのも選択肢の一つと考えつつ、探してみてください。  出て行ってもいいことあるかもしれないし、無いかもしれないよ・・・

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

今回は、 Outlookのメール重要度を探った話でした。 独り言は置いといて/独り言も含め、何かの参考となれば幸いです。 ~~~~~~~~~~~~~~~~~~ Excel/Access大好き、三流プログラマーKen3でした。

フィードバック

VBA系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.101を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

ページフッター(リンクや広告など)


[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます


広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列

書籍の購入

Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??

コンピュータ書籍の発送がハヤイ専門店

コンピュータの本・専門店
種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり

amazon.co.jpでキーワード別チェック

下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・