none
Outlookリダイレクト風のマクロ RRS feed

  • 質問

  • 24時間起動の無人PCでメッセージをOutlookで条件付きで転送したいと考えています。

    メッセージルールを用いて実行したいのですが、転送の際に件名に付く「FW: 」の部分を削除したいです。

    マクロ初心者ですが色々な方の情報を元に以下のマクロで近いものが再現出来ました。

         

    Option Explicit

    Private WithEvents myInspectors As Outlook.Inspectors

    Private Sub Application_Startup()
      Set myInspectors = Application.Inspectors
    End Sub

    Private Sub myInspectors_NewInspector(ByVal Inspector As Inspector)
      Dim s As String

      If TypeName(Inspector.CurrentItem) = "MailItem" Then
        If Left$(Inspector.CurrentItem.Subject, 3) = "FW:" Then
          s = "" & Mid$(Inspector.CurrentItem.Subject, 5)
          Inspector.CurrentItem.Subject = s
        End If
      End If
    End Sub

    上記の記述だと対象のメールを手動で開き、転送ボタンを押した時点で「FW: 」は消えてくれるのですが

    Outlook起動時に自動で走るマクロのようで、スクリプトとして選択ダイアログに表示されません。

    表示されないのでメッセージルールのスクリプト実行で選択ができません。

    PublicやByRefやMailItemを使わないと選択ダイアログで表示されないとのことですが、どこをどのように書き換えると

    選択ダイアログに表示されるようになりますでしょうか。ご教示いただけますと幸いです。何卒宜しくお願いします。

    2018年12月18日 9:13

回答

  • 自己解決した為、備忘録として記録します。

    結論、マクロは初心者には難易度が高いのでOutlookもやめ、Gmailでリダイレクトの再現が出来ました。

    GmailでGmailドメインでアカウントを作成し、当社ドメインのアドレスをそのGmailアカウントも受け取れる設定をしました。

    [受信] AAA@gmail.com が 123@hoge.co.jpの受信メールも受け取る。

    [転送]条件付きフィルタでAAA@hoge.co.jpに転送設定

    上記によって、当社保有のドメイン間でのリダイレクトが実現出来たのと、web上で完結するのでPCのリソースに頼らないで

    済みました。

    リダイレクト風ではなく、しっかりとリダイレクトになっており、間にAAA@gmail.comが介在している情報もヘッダー情報でも

    確認しない限りは分からなくなっています。

    gmailを使用することで123@hoge.co.jp充てのメールが条件付きでAAA@hoge.co.jp充てにリダイレクトできました。

    件名の「FW: 」もこれなら付きませんでした。今後どなたか同様の件で悩んでらっしゃる方の助けになれば幸いです。

    余談ですが、当社のドメイン契約をしているメールプロバイダにもリダイレクトの機能は存在します。

    しかし1つのリダイレクトの宛先につき、件名転送の条件が5つまでしか設定が出来ませんでした。

    月末の請求書関連のタスク自動化をしたかったのですが、各社から来るメールが5つ以上ありましたので

    今後の拡張性を加味し、メールプロバイダに頼らないリダイレクトを実現したいと思った次第です。

    • 回答としてマーク mizuho524 2018年12月19日 4:37
    • 編集済み mizuho524 2018年12月19日 5:39 加筆
    2018年12月19日 4:37