[三流君] −−>
[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系の→[掲示板]←を覗く、質問を書き込む
評価・感想
ページフッター(リンクや広告など)
[三流君(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に流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・