• 締切済み

outlook VBAについて

outlookのVBAで Application_NewMailEx で受信メールを拾って メールヘッダーにある「X-MS-Has-Attach」の値で処理を実行したいのです。 myNamespace.GetItemFromIDでsubjectなどは見れましたが「X-MS-Has-Attach」の値を見るためにはどうしたらいいのでしょうか?

みんなの回答

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

例として Set objMail = myNamespace.GetItemFromID(EntryIDCollection) タイトル= objMail.Subject のようなコードで その Subject を取得している、ということですね。 ついでにそこで 添付ファイル有 = (objMail.Attachments.Count > 0 ) のように取得するのはどうでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1624/2466)
回答No.1

選択されているメールのヘッダーからX-MS-Has-Attachの値を取り出します。 X-MS-Has-AttachのあるメールがないのでX-MS-Has-Attachの記述のあたりは実際に実行して試してください。 URLのような記述がありますがそこにアクセスするわけではありません。 Sub Test() Dim mHeader As String, mHArr As Variant, mHs As Variant mHeader = ActiveExplorer.Selection.Item(1).PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E") mHArr = Split(mHeader, vbCrLf) For Each mHs In mHArr If InStr(mHs, "X-MS-Has-Attach:") = 1 Then Debug.Print Trim(Replace(mHs, "X-MS-Has-Attach:", "")) End If Next End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • <EXCEL/VBA> OUTLOOKのウインドを閉じる方法

    EXCEL/VBAで、OUTLOOKのウインドを閉じる方法を教えて下さい。 OUTLOOKを立ち上げた状態で、EXCEL/VBAで下記のようにOUTLOOKのフォルダーを指定してウインドを表示していますが、 VBAで開いたウインドのみ閉じたいのですが、うまく行きません。 oApp.Quitだと元々立ち上げていたoutlookも含めて終了してしまいます。宜しく、お願いします。 Sub OL_TEST() Dim oApp As Object 'OutlookのApplication オブジェクト Dim myNameSpace As Object '名前スペース Dim myFolder As Object 'フォルダー指定 Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 myFolder.Display '表示

  • outlook 2007 のヘッダ

    MS Office Outlook 2007 で、受信したメールがどのコンピュータを経由してきたかという情報も含めたヘッダを表示するにはどうしたらよいのでしょう。「メッセージヘッダ」をオンにしても出てきません。よろしくお願いいたします。

  • Outlook2003 VBA マクロで迷惑フォルダ内のメールを一括削除したい

    行いたいことは、受信トレイ以下に「迷惑メール」と「迷惑メールフォルダ」というフォルダがあるのですが、これらのフォルダ内にあるメールを一括して削除するマクロを作成したいのです。 これまでは、フォルダを選択 → Ctrl+A → Delという操作を行っています。 ネット上のサンプルを参考に以下を作成しましたが、具合が良くないのです。1件づつループして削除させているので、数百件あると非常に処理が重くなるのです。 つまり、「Ctrl+A(全て選択) → Del」というようにさくっとした感じで処理がしたいのですが、その方法がわかりません。どうか、宜しくお願い致します。 Sub 複数のフォルダ内のメールを削除() 'お約束? Set myOlApp = CreateObject("Outlook.Application") Set myNameSpace = myOlApp.GetNamespace("MAPI") 'フォルダ指定 Set myFolder1 = myNameSpace.Folders("個人用フォルダ").Folders("迷惑メール") Set myFolder2 = myNameSpace.Folders("個人用フォルダ").Folders("迷惑メールフォルダ") '(1)「迷惑メール」内を削除 Dim cnt As Integer TOTAL = myFolder1.Items.Count For i = 1 To TOTAL '1番上のメールから順次削除 myFolder.Items(1).Display 'もしかして、これがいけない? myFolder.Items(1).Delete Next i '(2)「迷惑メール」内を削除 ・・・(1)と同様 End Sub 今回初めて、Outlook2003 VBAをさわってみましたので、基本がわかっていないと思います。ご指南頂ければ幸いです。

  • エクセル2007 VBAでアウトルック2007の予定表を作るんですが、

    エクセル2007 VBAでアウトルック2007の予定表を作るんですが、 日付まではうまくいったのに開始時刻が指定できません。 エクセルでのファイルを保存した後にそのファイルを添付したアウトルック予定表を作成します。 予定日は3ヶ月後、開始時刻は8:30amにしたいのですが、どうにも開始時刻だけが指定できません。 なにかいい方法があるでしょうか? こちらを参考に途中までは出来ています。 http://www.ken3.org/cgi-bin/group/vba_outlook.asp ただし、予定表の開始時刻が0:00となっているので、ここを8時30分にしたいのです。 (終了時間はあまり気にしません) そもそも出来ないのかな? コードは下記です。 Sub 保存() '保存コード省略 Flnm=フォルダとファイル名 'ここからアウトルックの操作 Dim oApp As Object Dim myNameSpace As Object Dim myFolder As Object Dim strMOJI As String Dim objITEM As Object 'outlook 起動 Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(9) '起動時フォルダーを指定 myFolder.Display 'アイテムの作成 Set objITEM = oApp.CreateItem(1) '予定表作成画面を指定 objITEM.Display '編集画面を表示 '予定表内容 objITEM.Subject = "見積り発行後のフォロー" '件名 objITEM.body = "見積り発行から3ヶ月経ちました" '本文 objITEM.Attachments.Add Flnm 'ファイルの添付 objITEM.Start = DateAdd("m", 3, Date) '予定日 'ここらへんがわからない        '開始時間も入れたい 'objITEM.Save                 '保存 'objITEM.Close 2                  '閉じる End Sub 開始時刻以外はすべてうまく処理出来ています。

  • MS Outlook 2007の設定で、

    MS Outlook 2007の設定で、 送受信の際に、バーが出ないのでしょうか?(送信の場合、バーが走る) OEや他のメーラーは一瞬でも出るのですが・・・ それと、受信したメールのヘッダ表示部分に「X-Malier」は追加できないのでしょうか。 よろしくお願いします。

  • (OUTLOOK)VBA。次のアイテムを取得

    OUTLOOKです。 VBAで受信したメール開くと、標準ツールバーに『↑』『↓』ボタンがあります。 受信フォルダでどのようにソートがされていても、開いたメールを基準に次のメールを開いたり出来ます。 これをVBAで同じ操作をするにはどうすればよいのでしょうか?

  • アウトルックが起動しているかどうかを取得するには?

    http://www.ken3.org/cgi-bin/group/vba_outlook.asp を参考に Sub Sample() Dim oApp As Outlook.Application Dim myNameSpace As Outlook.Namespace Dim myFolder As Outlook.Folder 'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") '作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display) Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 myFolder.display End Sub でエクセルからアウトルックを起動しているのですが 既に起動していると2個起動してしまいます。 「既に起動しているのなら起動しない」という事はできますか? 参考URLに 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を と書いてありますが、ちょっと勘弁できませんでした笑

  • outlookの予定をexcelから読む

    Office2007を使っています。 予定作成のフロントエンドとしてoutlook、 全体の予定表の作表、印刷エンジンとしてexcel、という使い方をしたいです Dim oApp 'As Outlook.Application OutlookのApplication オブジェクトを入れる Dim myNameSpace 'As Outlook.NameSpace 名前のスペースと言われても、、 Dim myFolder 'As Outlook.Folder フォルダー指定 Dim shigoto Dim aITEM 'As Outlook.AppointmentItem '予定、アポ Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 Set shigoto = myFolder.Folders("予定表(仕事)") shigoto.display oApp.ActiveWindow.WindowState = 2 'olNormalWindow=2 を セット For Each aITEM In shigoto.Items 'aITEMに入っている個々の予定に対する処理 Next http://www.ken3.org/cgi-bin/group/vba_outlook.asp 上記サイトのコードで、規定の予定表にある予定オブジェクトにアクセスすることはできました これを、iCloud内の予定表に対して同じことをやりたいのですが、うまくいきません。 Set shigoto = myFolder.Folders("iCloud内の予定表(仕事)") Set shigoto = myFolder.Folders("iCloud").Folders("予定表(仕事)") などとやってみたのですが、 実行時エラー'-2147221283(8004010f)": 操作は失敗しました。オブジェクトが見つかりませんでした。 というエラーで終了です。 うまくいく方法はないでしょうか? よろしくお願いします。

  • Outlook2010のMailについて

    Outlook2010のMailについて Outlook2010の受信Mailのヘッダーが見たい、あるいはヘッダーごと印刷したいときにはどうしたらよいのでしょうか?MailのリストでMailを選んで右クリックしても出せないようで困っております。

  • Outlookの文面を赤にする方法-エクセルVBA

    下記のようなコードでエクセルVBAでOutlookメールを作成する際、「期限:10月30日」の部分だけを赤にする方法を教えてください。 HTMLBodyというのを使うようなのですが、下記のコードの基本を変えず、対応する方法を教えてください。 Sub メール() 'Outlookの定義 Set myOutLook = CreateObject("outlook.application") Set Omail = myOutLook.CreateItem(olMailItem) 'メール作成 Omail.BodyFormat = 2 'メール形式 1=テキスト 2=HTML 3=リッチテキスト Omail.Subject = "意見記入のお願い" 'subject Omail.Body = Omail.Body & "いつもお世話になっております。" & vbCrLf Omail.Body = Omail.Body & "下記の申請が提出されました。" & vbCrLf Omail.Body = Omail.Body & "期限:10月30日" Omail.Display End Sub