疑問・質問・マクロの要望

このブログでは Outlook に関する質問や疑問、マクロの要望などを募集しています。
この記事のコメントに入力してご質問等をお寄せください。(コメントに入力される際には、他の質問と区別できるよう、できる限り名前の欄にハンドル名などを入れてくださると助かります。)
また、ご質問に Outlook のバージョンや使用環境の詳細を記載していただくと、より的確な回答が可能になると思いますので、ご協力をお願いします。

なお、可能な限りお答えしたいと思いますが、すべてのコメントやメッセージにお答えできるとは限りません。特に、ログやデータの解析が必要なトラブルに対するご質問や、複雑なマクロのご要望などにはお答えできない場合があります。
確実に回答が必要な場合や、差し迫ったトラブルへの対応、製品の恒久的な対応やマイクロソフト社の正式見解が必要な場合は、マイクロソフトのサポート窓口にお問い合わせください。

アーカイブ リンク
2019年
2018年
2017年
2016年以前

疑問・質問・マクロの要望」への58件のフィードバック

  1. 予定表で、
    定例会議をほかユーザーと共有しているのですが、
    ある個別の会議を このアイテムのみ開く で調整した際、

    ほかユーザーの予定は変わりますが、
    私の予定のみ一瞬変わるのですが、
    すぐに私の予定だけ変更前に戻ってしまいます
    おかしな設定を下覚えはないのですが、
    何か設定を変えることで処置できるならすぐに対応したいです

    • 以下のレジストリを設定して回避するか試してみてください。

      キー: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Cached Mode
      名前: Upload
      種類: REG_DWORD
      値: 1

  2. つい先日よりOutlookを使用し始めて、こちらにお邪魔して勉強させて頂いております。
    (環境:WIN10, Office365)
    さて、「名前が適切ではありません」のコンパイルエラーで困っております。
    マクロは例の「豆腐メール」受信後の削除、及びメール受信後の添付エクセルファイルを
    デスクトップへ保存する の2種類のマクロを上下並べて記述させましたところ、
    上述のエラーが出ております。
    具体的には、Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    のところが、2種類のマクロ故に2重になっていることでのエラーだと思いますが、その回避方法を
    ご教示お願いしたいと存じます。いろいろ試しましたが、初心者故に対応が不明です。
    (豆腐メール用マクロは、サブ プロシージャがなく、もう一方はそれがあることで、混乱しているのかも知れません) どうぞよろしくお願い致します。

  3. いつも参考にさせていただいております。

    現在outlook2010を使用しております。

    特定の文字列から始まる件名のタスクを
    実施済みにした際に
    エクセルシートに①件名②タスク所有者の氏名
    が転記されたいと考えております。

    よろしくお願いいたします。

  4. 初めてOutlookVBAに挑戦しており、とても参考にさせて頂いております。
    どうしても実現したいものがあり、お力添えいただけないでしょうか。

    本文にHTMLの表のあるメールが毎日数件届きます。
    1時間ごとにマクロを実行し、表内の項目を既存のエクセルの最下行に追記していくようにしたいです。

    HTML表は列数は2で固定、行数が変動します。

    「HTML 形式のメールの本文中に含まれる表を Excel にコピーするマクロ」を加工して作っているのですが、
    オブジェクトに関するエラーが出てしまい打破できません。
    何卒宜しくお願いします。

    • どのようなマクロのどのようなコードでエラーになっているかがわからないのですが、具体的なマクロやエラーの内容などを教えていただくことは可能でしょうか?

      • ご返信ありがとうございます。
        参考にしているのは、https://outlooklab.wordpress.com/2015/06/06/html-%e5%bd%a2%e5%bc%8f%e3%81%ae%e3%83%a1%e3%83%bc%e3%83%ab%e3%81%ae%e6%9c%ac%e6%96%87%e4%b8%ad%e3%81%ab%e5%90%ab%e3%81%be%e3%82%8c%e3%82%8b%e8%a1%a8%e3%82%92-excel-%e3%81%ab%e3%82%b3%e3%83%94/ そのままです。
        オブジェクトに関するエラーは乗り越えられました。お騒がせしました。
        Excelにペーストする際にテキストのみにしたいのですが、貼付け後にExcel側で書式を変更するしか無いでしょうか。

  5. OutlookVBA初心者です。

    お力添えを頂きたく初投稿させて頂きます。

    予定表に関して以下イベントのハンドラを実装したいのですが、
    どのようにしてイベントを検知すればよいかわかりません。

    ・予定表に新たにスケジュール登録された場合
    ・予定表に存在するスケジュールの件名や時間等のプロパティが変更された場合

    上記タイミングを検知し、外部システムへ通知を送りたいと思っております。

    コメント等頂けますと幸いです。

    よろしくお願い致します。

  6. OutlookVBA初心者です。
    1クリックで以下の作業を行いたいと考えております。
    (環境:Win10/Outlook2013)

    ・本文の一部だけを抜粋してヘッダーまたはフッターに表示
     もしくは件名の後ろから7文字
    ・抜粋した文字列をバーコード表示(バーコードフォントは入っております)
    ・クイック印刷

    抜粋する条件は指定文字列の後ろの7文字です。
    (バーコードフォントはBC39のため前後に*を結合する必要があります)

    また、実現出来たら他の(遠隔地の営業所)PCにも同様の設定を行いたいのですが、
    直接使用しているPCにコードをコピペする以外に方法はありませんでしょうか?

    お力添えいただけますと幸いです。
    何卒宜しくお願い致します。

    • こちらは印刷するのはバーコードのみでよいのでしょうか?
      それともメールの本文の最初または最後にバーコードを追加して印刷するのでしょうか?
      ちなみに、Outlook のマクロについては複数端末に展開する方法は用意されておらず、マクロを手入力するか、マクロではなくアドインとして実装する必要があります。

      • 返信が遅くなり申し訳ございません。
        展開方法に関してご教授いただきありがとうございます。
        印刷はメール本文に追加していただきたいです。(用紙の右上ないし右下)
        重ねてのお力添えをお願い申し上げます。

  7. Outlook VBA 初心者です。
    Outlook 2016を使用しています。

    Msg BoxとInput Boxの併用について。
    まずMsg Boxで、YES/NOの質問。Noの場合はそのまま送信。
    YESをクリックした場合で、Input Boxを表示させ、任意の文字を入力させる。
    入力させた文字は、メール本文の文末に『Checked (任意の文字)』と追記したい場合のコードをご教示いただきたく。
    メッセージボックスからインプットボックスまでのつなぎ方がいまいちわかりません。
    お力添えいただきますと、幸いです。
    宜しくお願いいたします。

    • objMail が本文を変更するメールアイテムとすると、以下のようなコードになります。

      If MsgBox(“確認メッセージ”,vbYesNo) = vbYes Then
      strText = InputBox(“任意の文字列:”)
      objMail.Body = objMail.Body & “Checked (” & strText & “)”
      End If

      • 返信遅くなって申し訳ありません。

        コード的には以下のようなものを作っているのですが、最後のObjMailでエラーが起こります。
        申し訳なくも初心者の為、原因がよく分らずです。
        お手数ですが再度ご教示いただけると幸いです。

        Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
        Dim objMail As MailItem
        Dim strText As String
        If Item.Attachments.Count > 0 Then
        If MsgBox(“Alert” & vbCrLf & _
        “This mail has attachment.”, vbYesNo + vbExclamation + vbDefaultButton2, “attachment”) = vbYes Then
        strText = InputBox(“Please input appropriate attachment number.”)
        objMail.Body = objMail.Body & “checked ” & strText
        End If
        End If
        End Sub

  8. アウトルックメールから送れないメールアドレスにメールを送るには、どうしたらいいですか?

    例→ メールアドレスの@の直前にピリオド(.)がある。

    よろしくお願いします。

  9. Outlookマクロについて質問です。
    メール本文から特定文字以降を抽出したいです。
    Outlook2016です。

    ★条件
    ・新規メールを受信後、件名に”パスワード”とあったら実行

    ★やりたいこと
    ・下記を指定Excel(C:\test\PW.xlsx)に書き出し
    ・件名をA2以降に書き出し(空白行の最終行)
    ・本文内の【パスワード】後に改行してあるパスワードをA3以降に書き出し(空白行の最終行)

    ★例
    ******* このようなメールを受信 *******
    〈件名〉
    パスワード送信
    〈メール本文〉
    お疲れ様です。

    【パスワード】
    ABC123

    ******* 指定Excel *******
    (A2)       (A3)
    パスワード送信  ABC123

    以上、お力を貸していただきたいです。
    少し急ぎ目だと助かります。
    よろしくお願いいたします(@_@)

  10. はじめまして。
    こちらのサイトをいつも参考にさせていただいております。
    投稿されていた添付ファイルを保存するマクロを実行しているのですが、
    会議通知が来るたびにエラーが起こり、デバックが必要となります。
    ○エラー箇所
    > Set mail = Application.Session.GetItemFromID(strEntryID)
    会議通知をよけるにはどうすればよいでしょうか。

    ○実行マクロ
    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim i As Integer
    Dim id As Variant

    If InStr(EntryIDCollection, “,”) = 0 Then
    SaveAttachments EntryIDCollection
    Else
    id = Split(EntryIDCollection, “,”)
    For i = LBound(id) To UBound(id)
    SaveAttachments id(i)
    Next
    End If

    End Sub

    Private Sub SaveAttachments(ByVal strEntryID As String)
    Dim attach As Attachment
    Dim file As String
    Dim bat As Object
    Dim mail As Object

    Set bat = CreateObject(“WScript.Shell”)
    Set mail = Application.Session.GetItemFromID(strEntryID)

    For Each attach In mail.Attachments
    With attach

    ‘保存する添付ファイルをファイル名で指定
    If Not .FileName Like “ファイル名” Then
    GoTo L1
    End If

    ‘保存先のフォルダを指定
    file = “フォルダ” & attach.FileName
    .SaveAsFile file

    ‘実行するbatファイルを指定
    bat.Run “batファイル”, 1, True

    L1:
    End With
    Next

    Set bat = Nothing
    Set mail = Nothing
    End Sub

    • 本来なら mail を Object として定義しているので、GetItemFromID で会議出席依頼のアイテムが取得されてもエラートはならないはずなのですが…
      原因がわからないので On Error Resume Next を Application_NewMailEx の冒頭に挿入してみてください。
      こうすると、エラーが発生しても無視されます。

  11. 始めまして。こちらのサイトで勉強させていただいております。
    VBA初心者で浅学で誠に申し訳ございませんが、お力添え頂けないでしょうか。
    (環境:Win10/Outlook2013)

    <実現したいこと>
    ・特定サブフォルダに見積メールが新規格納されたら、管理簿登録するExcelマクロを実行する。
    ・管理簿登録時の引数は、メール本文に記載の案件名とする。

    <エラー箇所>
    ・Outlookマクロ→Excelマクロの呼び出し方法が分かりません。
    ※「特定サブフォルダに見積メールが新規格納されたら」の部分は過去質問を基に作成予定です。

    ===エラーになったマクロ===
    Sub 呼び出し()
    Dim BookName As String
    BookName = “C:\test.xlsm”
    Application.Run “‘” & BookName & “‘” & “!見積マクロ”
    End Sub
    ================

  12. 貴Windows 転送ツールで転送後に Outlook で連絡先がアドレス帳に表示されない現象について
    の表記で紹介されたvbsをoutlook2019で実行したところ
    行25 文字1 エラー 型が一致しません UBound コード800A000D 実行エラーが出ました。
    お忙しいところ恐縮ですがご教授いただけると幸甚です。
    よろしくお願いいたします。

    • Outlook 2019 で実行してみたのですが、正常に動作しました。
      プロファイルのレジストリ情報がスクリプトで修正できないような不整合となっている可能性があるので、プロファイルを再作成してみてください。

  13. いつも参考にさせてもらっています。
    Outlook365(2016?)で、受信メールの表示画面のフォントをすることはできない
    でしょうか?
    テキスト形式でひな型のフォントを固定長フォント(MS ゴシック)に変更して
    いますが、受信したメールは罫線などの記号が適用されていないため、罫線で
    作成された表がとても見辛いのです。

    ちなみに、メール本文をテキストエディタにコピー&ペーストすると、きちんと
    表が表示されます。
    また、メール作成時も問題なく表として表示されているのですが、自分宛に
    送信してみると、やはり、表が崩れて表示されます。
    もしかすると、文字コードの問題なのかもしれませんが、まずは、受信した
    メールのフォントを変更する方法があれば、ご教示ください。

    以上です。

    • 相手が HTML 形式やリッチテキスト形式で送信してきた場合、テキスト形式のために設定したフォント情報は使用されず、相手が指定したフォントで表示されます。
      受信側でフォントを強制することはできません。
      すべてのメールをテキスト形式で表示するようにすれば受信側で指定したフォントで表示されますが、その場合は本文中の図やテーブルが失われたりしてかえって見づらくなる可能性もあります。
      表の埋め込みをしたいなら、罫線文字で表を作るのではなく、HTML 形式で表を作ったほうが良いのではないかと思います。

  14. はじめまして。いつもこのサイトにて勉強させてもらっています。
    Excelから会議開催通知を送信するマクロを作成したのですが、本文のフォントやサイズ、文字色の変更方法がわかりません。行毎にそれぞれ指定した書式にすることは可能でしょうか?
    また文章内に例えば、ファイル名.xlsxと書いた部分にハイパーリンクを設定する方法を教えて頂けると大変助かります。
    よろしくお願い致します。

  15. すいません。もう1つ教えて頂きたいです。
    Excelからメールの本文を作成する際もフォント、サイズ、文字色を変更する方法も教えて頂けると助かります。行毎や何行目の何文字目から何文字目までのように指定した位置を変える事も可能でしょうか?又、ハイパーリンクの設定方法も教えて頂けると助かります。
    よろしくお願い致します。

    • 残念ながら会議出席依頼の本文でフォントのサイズや色などの書式を設定することはできません。
      会議出席依頼自体は HTML 形式やリッチテキスト形式をサポートしているのですが、Outlook オブジェクト モデルでは会議出席依頼はテキスト形式の本文しか扱えないのです。

  16. Outlook2016を使用しています。先日から受信したメールの画像が四角い枠で表示され
    画像が表示されなくなりました。
    以前は、メールの編集オプションの詳細設定の図をイメージ枠で表示するという項目にチェックが
    入っていると
    同じような現象が起こっていたようですが、システムの更新があってその項目が無くなっています。
    どうすれば表示できるようになるでしょうか?

    • Outlook 2016 でも [図をイメージ枠で表示する] という項目は残っています。
      この設定はメールの新規作成時のウィンドウの [ファイル]-[オプション] で表示されるものなのですが、どこの [オプション] で確認されたのでしょうか?

  17. はじめまして
    Outlook 2016 を使用しています。
    メール自動転送のマクロの相談です。

    受信メールを転送時、送信メールの差出人は「自分」のアドレスとし、
    本文一行目には”転送します”の一文を追加したいです。
    受信メールの条件や転送先は仕訳ルールで自分で設定します。

    経緯:社内にて、非常勤社員から送られたメールを別の非常勤社員へ転送する(お互いのメールアドレスは分からないようにする)という煩わしい作業が日に10件近くもあり解決方法を模索していました。似たような質問はここでいくつか見つかったのですが私ではプログラムが読み解けず質問に至りました。大変初歩的な質問で申し訳ありませんが、上記解決できるマクロをご教授願います。

    • 残念ながら転送先をルールで指定するという場合、マクロで本文を編集することはできません。
      実装するとなると、転送処理自体をマクロで処理し、転送先の指定もマクロ内で行う必要があります。

  18. いつも大変お世話になっております。
    業務効率化のために実現したい機能があり、ご支援いただけないでしょうか?
    Outlook2016を使用しています。

    社内システムにて受注入力すると受注票(PDF)が添付された出荷依頼メールが送信されます。出荷担当はその都度この添付ファイルを印刷するのですが、日々数十件発生するため自動化したいです。
    そこで当サイトの過去事例を参考に以下のようなマクロを作成しました。メール受信イベントをトリガーに、条件に合致するメールだったら、添付ファイルを保存→印刷→フォルダ移動を実行します。

    Private Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA” _
    (ByVal hWnd As Long, ByVal lpsz0p As String, ByVal lpszFile As String, _
    ByVal lpszParams As String, ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long

    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim objItem As Object
    Set objItem = Session.GetItemFromID(EntryIDCollection)
    If TypeName(objItem) = “MailItem” Then
    ‘メールを受信したら添付ファイル保存・印刷・フォルダ移動を実行
    Call PrintAttachments(objItem)
    End If
    End Sub

    Public Sub PrintAttachments(ByVal objMail As MailItem)
    On Error Resume Next
    Const ATTACH_PATH = “C:\受注票PDF\” ‘添付ファイルの保存先フォルダ
    Const FromAddress = “aaaa@bbb.cc.dd” ‘Fromメールアドレス
    Const ToAddress = “wwww@xxx.yy.zz” ‘Toメールアドレス
    Dim objAttach As Attachment
    Dim strFileName As String
    Dim fldInbox As Folder
    Dim fldPrinted As Folder
    ‘件名・From/Toアドレスが条件に合致した場合
    If objMail.Subject Like “出荷依頼【NO. *” And _
    objMail.SenderEmailAddress = FromAddress And objMail.To = ToAddress Then
    ‘添付ファイルが存在する場合
    If objMail.Attachments.Count > 0 Then
    For Each objAttach In objMail.Attachments
    ‘添付ファイル名が条件に合致した場合
    If objAttach.FileName Like “SYUKAIRAI_*.pdf” Then
    ‘添付ファイルを指定フォルダに保存
    strFileName = ATTACH_PATH & objAttach.FileName
    objAttach.SaveAsFile (strFileName)
    ‘保存したファイルの印刷
    Call ShellExecute(0, “print”, strFileName, 0, ATTACH_PATH, 0)
    ‘受信トレイ・印刷済フォルダの取得
    Set fldInbox = Session.GetDefaultFolder(olFolderInbox)
    Set fldPrinted = fldInbox.Folders(“印刷済”)
    ‘印刷済フォルダにメールを移動
    objMail.Move fldPrinted
    End If
    Next
    End If
    End If
    End Sub

    このマクロですが、受信するメールが1件ずつなら問題ないのですが、同時に複数件のメールを受信すると1件だけ処理して残りはスルーしてしまいます。最初の受信イベントを検知して後続の添付ファイル保存・印刷・フォルダ移動の処理をしている間に発生した残りのメールの受信イベントは検知できないようです。

    そこで、受信イベントを検知したら、30秒間待機させて、受信トレイ内のすべてのメールに対して添付ファイル保存・印刷・フォルダ移動を実行するようにしたいのですが、どのようにコーディングすればいいのか分かりません。このマクロのコーディングをお願いできないでしょうか?

    よろしくお願い致します。

    • 残念ながら複数のメールを同時に受信した際にマクロが実行されなくなるという問題についての回避策がまだ見つかっていません。
      Outlook のマクロは常にメインのスレッドで行われるので、マクロの中で 30 秒待機するとその間 Outlook が処理できずに固まってしまうだけで、回避策とはなりません。

  19. たいへんお世話になります。
    OutlookのVBAについての質問です。

    やりたいこと:
    Outlookに複数のアカウントがあります。例えば
    アカウント1 のアドレス:address-1
    アカウント-2 のアドレス:address-2 とした時

    新規メール、返信、転送 などのウィンドウを開いた時に、
    BCCに差出人アドレスのaddress-1 またはaddress-2を自動で入力したい。

    質問:
    ・アカウント-1が選択されているとき、address-1 を変数の値として取得したい
    ・アカウント-2が選択されているとき、address-2 を変数の値として取得したい
    VBAのSender PropertyやSenderEmailAddress Property などの具体的な使い方が良く分からない。

    参考マクロ:
    Outlook 2013 でメール送信時に常に BCC を付加する
    https://www.compnet.jp/wordpress/archives/2990

    環境:
    Windows10 Professional 64bit
    Office 2019 またはOffice365

    以上よろしくお願い致します。

  20. こんにちは、よろしくお願いします

    決まった件名のメッセージを受信したら、データを CSV ファイルに保存するマクロ

    を参考にしてパスワードをクリップボードへコピーするようにできました
    ありがとうございます

    それで、この動作を「メール受信時」ではなく「メール選択時」にしたいのですがうまくできません

    Application_ItemLoad に記述すればいいと思ったのですが
    マクロ初心者でオブジェクトの概念が理解不足と感じています

    ■実現したい事
    件名に「[パスワード/Password]」 の文字があるメールをプレビューするか開く時
    本文にある「パスワード : 」より後ろ、改行までの文字をクリップボードにコピーする

    ■使用環境
    Windows10
    outlook2016

    よろしくお願いいたします

  21. はじめまして 。VBA初心者です。
    仕事柄、グラフなどの図を画像形式で共有することが多く、次のようなマクロを探しています。
    snippingツールやスクリーンショットで既にクリップボードにコピーされている画像を、outlookの新規メール本文にペーストするマクロは既に公開されてますでしょうか?宜しくお願い申し上げます。

  22. お世話になっております。
    いつも拝見し参考にさせていただいております。
    今回、私のoutlook予定表を複数人と共有したいと考えているのですが、
    私のoutlookからエクスポートしたファイル(csv)を、
    他人のoutlookにインポートするVBAはないでしょうか?
    以前の投稿で、自分でエクスポートしたものを編集し、再インポートするものはございましたが、
    今回はエントリIDなどをキーにせずに、誰でもcsvファイルをインポート実施できるようにしたいです。

    ◆インポート項目
    件名,開始日,開始時刻,終了日,終了時刻,終日イベント,アラーム オン/オフ,アラーム日付,アラーム時刻,会議の開催者,必須出席者,任意出席者,リソース,プライベート,経費情報,公開する時間帯の種類,支払い条件,場所,内容,秘密度,分類,優先度

    ◆バージョン
    outlook office365

    ◆以前の投稿
    https://outlooklab.wordpress.com/2018/04/28/%E4%BA%88%E5%AE%9A%E8%A1%A8%E3%82%92-excel-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%80%81excel-%E3%83%95%E3%82%A1%E3%82%A4/

    よろしくお願いします。

  23. 初めて投稿します。

    セキュリティ対策のため、添付ファイルを送受信する時に暗号化zipをしなければいけないのですが、送信時にlhaplus等に渡すことで自動化はできたのですが、
    受信メールに対して、解凍や、添付ファイルの削除はできました。
    しかし、解凍した添付ファイルを元の受信メールに付けようとする(attachments.add)と、サポートされていないメソッドとしてエラーになります。

  24. はじめまして。
    Outlook2016を使用しています。
    ToまたはCcに、特定のドメインが含まれている場合、Bccを追加するマクロを探しています。
    「社外のアドレスを宛先に含む場合のみ BCC を追加するマクロ」はありましたが、社外一律ではなく、特定ドメインを含む場合のみ実行されることが希望です。

  25. こんにちは。

    いつもこちらのサイトのsourceを参考にさせていただいております。

    初めて投稿をさせていただきます。

    OutLook2016 / Windows10の環境でExchangeメールボックスサーバーで利用しています。仕分けルール以外の仕訳として、以下を作成してみましたところ、問題なく動く時もあれば、受信時のコード冒頭の「宛先⁼ objMsg.To」のところでエラーが発生し、「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」と出てしまう場合があります。
    また、同じコードをSubプロシージャにコピーすると、振分けの条件に当てはまるにも関わらず、振分けされる場合とされない場合があります。
    上記、2点についてお知恵をお借りすることはできますでしょうか。

    参照設定は、
     Visual Basic For Applications
     Microsoft Outlook 16.0 Object Library
     OLE Automation
     Microsoft Office 16.0 Object Library
    です。
    ———————

    Function Furiwake1(ByVal 項目1 As String, ByVal 振分けWord1 As String, ByVal 振分けFolder As String) As String

    If InStr(項目1, 振分けWord1) 0 Then
    Furiwake1 = 振分けFolder
    Else
    Furiwake1 = “”
    End If

    End Function

    Function Furiwake2(ByVal 項目1 As String, ByVal 振分けWord1 As String, ByVal 項目2 As String, ByVal 振分けWord2 As String, ByVal 振分けFolder As String) As String

    If InStr(項目1, 振分けWord1) 0 And InStr(項目2, 振分けWord2) 0 Then
    Furiwake2 = 振分けFolder
    Else
    Furiwake2 = “”
    End If

    End Function

    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)

    Dim objMsg

    If InStr(EntryIDCollection, “,”) = 0 Then
    Set objMsg = Session.GetItemFromID(EntryIDCollection)

    差出人 = objMsg.SenderEmailAddress
    宛先 = objMsg.To
    CC = objMsg.CC
    BCC = objMsg.BCC
    件名 = objMsg.Subject
    本文 = objMsg.Body
    作成時間 = objMsg.CreationTime
    送信時間 = objMsg.SentOn
    アプデ人 = objMsg.SentOnBehalfOfName

    結果 = “”

    ‘ 結果 =Furiwake1(項目1 , 振分けWord1 , 振分けFolder)
    ‘ 結果 =Furiwake2(項目1 , 振分けWord1 , 項目2 , 振分けWord2 , 振分けFolder)

    ‘ If 結果 = “” Then
    ‘ Else
    ‘  GoTo Move_Folder
    ‘ End If

    ‘ ————————————————————————————————————————–

    結果 = Furiwake1(件名, “[P”, “SIM”)
    If 結果 = “” Then
    Else
    GoTo Move_Folder
    End If

    結果 = Furiwake1(差出人, “issues+issues@prod.sim.a2p.com”, “SIM”)
    If 結果 = “” Then
    Else
    GoTo Move_Folder
    End If

    ‘ ————————————————————————————————————————–

    次へ:

    Exit Sub

    Move_Folder:
    ‘———————–(フォルダ移動)
    Dim 振り分けfolder As String
    Dim fldCurrent As Folder
    On Error Resume Next
    Dim fldMoveTo As Folder

    振り分けfolder = 結果

    ‘ 表示中のフォルダーを取得
    Set fldCurrent = ActiveExplorer.CurrentFolder
    ‘ 表示中のフォルダーの下の検索文字列と同じ名前のフォルダーを取得
    Set fldMoveTo = fldCurrent.Folders(振り分けfolder)
    If fldMoveTo Is Nothing Then
    ‘ フォルダーがなければ作成
    Set fldMoveTo = fldCurrent.Folders.Add(振り分けfolder)
    End If
    objMsg.Move fldMoveTo

    Set fldMoveTo = Nothing

    GoTo 次へ

    Else
    Dim strIDs
    Dim i
    strIDs = Split(EntryIDCollection, “,”)
    For i = LBound(strIDs) To UBound(strIDs)
    Application_NewMailEx strIDs(i)
    Next
    End If
    End Sub

    ———————

    どうぞよろしくお願いいたします。

  26. こんにちは。
    ありがとうございます、いつも当サイトで勉強させてもらっています。

    (環境:Win8.1、Outlook2013)
    業務改善を図るべく、定型的な処理をVBAで何とか楽ができないかいろいろと自動化しているところですが、なかなか解決できない難問にあたってしまいました。

    質問:OutlookのVBAで、特定のプロシージャから他のプロシージャを変数で呼び出すことはできますか?

    以下に示すような同一モジュール内で、プロシージャ「sample」からプロシージャ「sample2」を呼び出す場合、直接指定であれば「Call sample2」のように記述することで可能ですが、変数(例として「aaa」)でプロシージャ「sample2」を呼び出すことは可能でしょうか?
    (ExcelのVBAの「Application.Run」はOutlookにはないようで、記述してもエラーになります)

    よろしくお願いします。


    Sub sample()
     ・・・
     Dim aaa as string
     aaa = “sample2”
     ・・・
     (他のプロシージャを呼び出し)
     ・・・
    End

    Sub sample1()
     ・・・
     ・・・
    End

    Sub sample2()
     ・・・
     ・・・
    End

  27. お世話になっております。

    以前作成しておられます、
    「受信したメールを自動的に MSG ファイルとして保存するマクロ」
    の送信版(送信したメールを自動的にMSGファイルとして保存)がほしいです。

    よろしくお願いいたします。

  28. はじめまして。はじめてのVSTOと格闘中です。
    閲覧ウィンドウに表示されたメール本文のハイパーリンクの右クリックメニュー(context menu)から
    当該ハイパーリンク(URL)をクリップボードに保存するアドオンを作りたいです。
    現在リボンUIを拡張して、コールバック関数を呼ぶところまでは実装できているのですが、肝心の当該URLを変数に格納するところがうまくいきません。右クリックした対象を扱うオブジェクトがどれなのか、よくわかっていません。解説いただけると幸いです。
    よろしくお願いいたします。

  29. いつも参考にさせていただいています。
    選択されたメールに対して返信したか確認し、返信済みの場合、その返信メールのオブジェクトMailItem)を取得する方法を参考にさせていただき、送信したメール(送信済みメール)に対して、回答が届いているか、届いていたら受信トレイからメールアイテムを確認して開く方法を模索しています。Outlook2016では、送信メールにEntryIDが付与されないという記事を読み、行き詰っています。なにか良い案があれば教えていただけますでしょうか。
    どうぞよろしくお願いいたします。

  30. はじめまして。
    取引先へのそれぞれ異なる複数の添付ファイルをつけての一斉メール送信を行うにあたり、
    初めてoutlookを使用することとなり、自動化に向けていろいろと情報収集をする中でこちらに
    たどりつきました。
    参考にできそうなアーカイブ[Excelのリストにしたがってファイルを添付して送信するマクロ]も少し内容が異なる様で、お力をお貸しいただければ幸いです。

    OS Windows10
    使用ソフト Excel2016 outlook2003
    やりたいこと・環境
    ◯環境
    社名とメールアドレスの一覧があります。(アドレス.xls)
    ファイル名に社名のついたエクセルファイルとPDF(同一社あて複数の場合は社名のあとに数字)がそれぞれ別に1つのフォルダに入っています。
    メール件名は統一です。
    ※Aフォルダ内にアドレス.xls / エクセルフォルダ / PDFフォルダ というイメージです。

    ◯やりたいこと
    本文は基本的に1種類ですが、宛名のところに社名を差し込みたい。(アドレス.xlsに記載のもの)
    各社宛に、エクセルファイルとPDFを添付して送信したい。
    この時、添付したいエクセルファイルは1つですが、PDFは0〜複数あります。
    アドレス.xlsに記載があっても添付ファイルがエクセル、PDF共に無い場合は送信しない。(いずれかの場合は送信)

    どうぞよろしくお願いいたします。

  31. いつも参考にさせていただいております。
    受信トレイにあるメールを Inspector で取り扱いたいのですが
    ・受信トレイ内のあるメールをダブルクリックしたとき
    ・すでにダブルクリックで開いてあるメールが複数あり、そのなかから1つのメールを選択したとき
    の2種類で他のマクロ呼をび出したいのですが、ご紹介いただけますか?

  32. お世話になっております。
    いつも拝見し参考にさせていただいております。
    AシステムとBシステムが承認されたときに通知・もしくはメールしたいです。
    1つの案件(No:X000000000)に対し、A・Bの2システムで承認されなければ作業ができないようになっています。
    Aシステム、Bシステムからそれぞれ承認メールは届きますが、タイミングもばらばらの為、確認に時間がかかっています。
    メールの件名も違う為、ソートしても並ばないのです

    Aシステムメール件名「【Aシステム】承認連絡(X000000000)」
    Bシステムメール件名「[Bシステム]No-X000000000 が承認されました」

    ——–
    Aシステムが届いたとき、Bシステムメールを確認して、同じX0000000があれば通知、もしくは自分に再度メール送信をするようなマクロは作れないでしょうか(A⇒B、B⇒Aどちらもあり得ます)

    もしくは何かいい方法はないでしょうか?
    メールが届いたら件名を編集してX000000000を先頭にするとかも考えたのですが…できそうでしょうか
    ExcelはVBAをよく使いますが、outlookに関しては正直知識もなく、助けてください。よろしくお願い致します。

  33. OutlookVBA初心者です。
    いつも拝見しながら勉強させていただいております。
    この度お力添えいただきたくコメントさせていただきました。

    毎日ファイル添付の状態で送られてくるメールを、
    添付ファイルをつけたまま別の人に転送する手前の下書き状態まで作成したいと思っております。
    その際に件名を「今日の日付+●●」と直し本文についても、毎回決まった
    文章をお入れしたいのですがどのようなVBAを組めばよろしいでしょうか。

    メールが送られてきたら自動で送信手前の下書き状態までできるようにしたいと思っております。
    お手数をお掛け致しますがお力添え頂けますと幸いに存じます。

  34. MSのこの記事(https://support.microsoft.com/ja-jp/help/290809/how-e-mail-message-formats-affect-internet-e-mail-messages-in-outlook)にある「方法2」、すなわち特定の宛先に対してメールの書式をいつも同じにする(具体的には、ふつうはHTMLでメールを書くが、特定のアドレス宛については必ずプレーンテキストにする)設定をしたいのですが、OUTLOOK 2016ではこの記事にある「インターネット形式」の設定画面が出てきません。この記事の方法は2010限定なのでしょうか。

  35. お世話になっております。

    下記の記事を元に受信後7日が経過しているメールを「Outlook データ ファイル (.pst)」へ
    メールを移動しようとしていますが、移動先の情報を変更しても正しく移動させることが
    できません。
    お手数ですが、移動に必要なマクロについて教えていただけないでしょうか。
    ※ データファイルの受信トレイの下に「7日経過分」フォルダを作成しておりその中へ
    移動したいと考えております。

    ————————-
    タイトル:Outlook 起動時に受信後 14 日が経過しているメールを受信トレイから移動するマクロ
    URL:
    https://outlooklab.wordpress.com/2017/10/21/outlook-%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%AB%E5%8F%97%E4%BF%A1%E5%BE%8C-14-%E6%97%A5%E3%81%8C%E7%B5%8C%E9%81%8E%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E5%8F%97/
    ————————-

    お手数をおかけいたしますが、よろしくお願いいたします。

イマムラ にコメントする コメントをキャンセル

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中