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

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

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

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

広告

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

  1. いつも勉強させていただいております。
    過去記事を参考にさせていただきマクロ作成を試しているのですが、
    VBAについて理解が浅いためかうまく作成することができず、
    お力をお貸しいただけないでしょうか。

    ■利用環境
    OSバージョン:Windows7 SP1 & Windows10 RD2
    Outlookバージョン:Outlook2010

    ■参考にした過去記事
    ・メールの内容を Excel ファイルにかき出すマクロ
    ・本文から取得したデータを項目別に Excel のシートに書き出すマクロ
    ・決まった件名で終わるメッセージを受信したら、キーワードを含む 1 行を CSV ファイルに保存するマクロ
    ・Outlook 起動時に受信後 14 日が経過しているメールを受信トレイから移動するマクロ

    ■前提
    顧客のデータベースの内容が変更されると、翌日にシステムからメールが送られてきます。
    会社名や管理番号以外は変更があった箇所のみ以下のメール本文例のように記載されます。
    ([項目名]は固定値で変更がない場合はメールには記載されない。)

    該当の[項目名]の後ろ何文字~何文字をエクセルに転記という形を目指してみましたが、
    間に「改行コード、半角スペース、任意の文字列(メールによって文字数は変動)」が
    記載された行が含まれる事が要因かと思うのですが、全角と半角カナ英数字のときで
    取得される位置が変わってしまい、よくわからなくなってしまいました。

    ◎実現したいこと
    (1)指定フォルダ内のすべてのメールの本文内の特定の内容をエクセルに書き出したい。
      ※特定の内容は「変更後:」以降の文字列。(下記メール本文例を参照)
       「変更前:~(任意の文字列)」の行は転記はせずに飛ばしたい。
      ※メール本文内の[項目名]の前には半角スペース4つ、[変更前:][変更後:]の前には
       半角スペースが6つ記載されています。

    (2)上記の処理がすべて完了後に該当フォルダのサブフォルダへ移動させたい。

    ●メール本文例1(※書き出し先のエクセル表のイメージの行4のように転記したい)
    ============================================================
    会社名 :■■■ 株式会社 
    管理番号 :0000000003

    変更点 :
    2019/01/15
    郵便番号
    変更前:444-5555
    変更後:333-3333

    住所
    変更前:■■県■■市4-5 ■■ビル5F
    変更後:■■県■■市3-3-3 ■■ビル3F

    ============================================================

    ●メール本文例2(※書き出し先のエクセル表のイメージの行5のように転記したい)
    ============================================================
    会社名 :○○○ 相互会社 
    管理番号 :0000000004

    変更点 :
    2019/01/15
    部署名
    変更前:第一製造部 
    変更後:第三製造部 

    部署名カナ
    変更前:ダイイチセイゾウブ
    変更後:ダイサンセイゾウブ

    ============================================================

    ◎書き出し先のエクセル表のイメージ

    \A列 \B列 \C列 \D列 \E列 \F列 \
    行1\①会社名 \②管理番号 \③部署名 \④部署名カナ \⑤郵便番号 \⑥住所 \
    行2\●●● 株式会社 \0000000001 \管理本部 \カンリホンブ \111-1111 \●●市●●町1-1 ●●ビル4階 \
    行3\□□□ 有限会社 \0000000002 \第一営業部 \ダイイチエイギョウブ \222-2222 \□□郡□□2-2-2 □□ビル2F \
    行4\■■■ 株式会社 \0000000003 \ \ \333-3333 \■■市3-3-3 ■■ ビル3F \
    行5\○○○ 相互会社 \0000000004 \第三製造部 \ダイサンセイゾウブ \ \ \

    ※各項目内の文字列についての補足(※具体例は書き出し先のエクセル表のイメージの行2、行3)
    ①会社名:全角
    ②管理番号:半角英数字
    ③部署名:全角
    ④部署名カナ:半角カナ
    ⑤郵便番号:半角英数字
    ⑥住所:全角、半角カナ英数字が混在 ※

    ※書き出し先のエクセル表のイメージ行1の項目は一例で、実際にはさらに数が多くなります。

    お手数おかけして大変申し訳ございませんが、
    何卒よろしくお願いいたします。

  2. ネットで検索しましたが、他に方法がないみたいなので、あまりマクロに詳しくない者でも順を追えばできるような方法を載せて欲しいです。
    私がやりたいことは「起動時にIMAPの各アカウントの受信フォルダに未読が何件あるか表示させる」です。

    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13125410308
    と同じですが、こちらの質問者さんは知識がおありみたいで、私はどこから手をつければいいか分からず、こちらに相談させてもらいました。

    2つあるアカウントのナビゲーションウィンドも毎回手で展開していて(片方はデフォルトのフォルダを変えたので開くようになりました)、それも併せて解決できればもっと嬉しいです。

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

    Outlook2010

  3. 日程調整を自動化したく、色々とネットで検索したりと手を尽くしたのですが、想定しているものを見つけられませんでしたので、もし可能であれば教えていただければと思います。

    ◆前提
    Outlookバージョン:Outlook2010

    社内ではOutlookに予定を登録した上で、公開設定をしていますので、全員の予定を確認することができます。

    会議などを設定する際は、出席者の予定表を並べて空き時間を確認し、候補をいくつか見つけてメールを送る
    ということをやっています。
    ただ、会議が多いことや基本的に社内にいることが少ないため調整がとても大変です。

    ◆実施したいこと
    候補日の抽出を自動化できないかと思っています。
    例えば、対象者•候補日•必要時間を指定すると、空き時間を抽出してくれる
    といったことをイメージしています。
    (対象者: aaa@—.co.jp bbb@—.co.jp
    候補日: 1/28 1/29 1/30
    会議時間: 1時間)

    上記以外でも何かいい方法や、解決法がありましたら、教えていただけませんでしょうか。
    お手数おかけしますが、よろしくお願いいたします。

    • 全員の空き時間情報が見えるということは Exchange サーバー環境と思われるのですが、その場合は会議の作成時に [会議室の検索] を使うと全出席者が出席可能な時間帯が [時間の候補] に表示されます。
      まずはこちらの機能をお試しください。

  4. OSバージョン:Windows 10
    Outlookバージョン:Outlook2016

    ■参考にした過去記事
    ビューをファイルにエクスポート・インポートするスクリプト
    https://outlooklab.wordpress.com/2017/05/27/%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%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%83%BB%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99/

    ■行いたいこと
    ビューをファイルにエクスポート・インポートするスクリプトにおいてスクリプト内に「エクスポート先のファイル名」、「インポートするファイル名」を環境に合わせて修正をする必要がありますが、エクスポート・インポートする際に任意のフォルダあるファイルをユーザーが選択できるようにできないかと考えております。

    ビューをファイルにインポートするスクリプトについては、「アップロードするファイルの選択」を表示して、任意のフォルダ、任意のファイル名を選択できるようにしてみましたが、ビューをファイルにエクスポートするスクリプトで「名前を付けて保存」を表示して、任意のフォルダ、任意のファイル名を選択できるようしたいと考えていますが、どのように行えばよいかが思いつきませんのでお教えいただけますでしょうか。

    On Error Resume Next
    Dim olkApp
    Dim objFSO
    Dim stmXml
    Dim stmXml2
    Dim strLine
    Dim arrLine
    Dim colViews
    Dim curView
    Dim objVIEW_XML
    With CreateObject(“InternetExplorer.Application”)
    .Visible = False
    .FullScreen = True
    .Navigate “about:blank”

    ‘表示待ち
    While .Busy Or .readyState 4
    WScript.Sleep 100
    Wend

    Set objVIEW_XML = .document.createElement(“input”)
    objVIEW_XML.setAttribute “type”, “file”
    .document.body.appendChild objVIEW_XML
    objVIEW_XML.Click
    If Trim(Len(objVIEW_XML.Value)) > 0 Then
    objVIEW_XML.Focus
    .ExecWB 17, 0 ‘OLECMDID_SELECTALL
    .ExecWB 12, 0 ‘OLECMDID_COPY
    stmXml = CreateObject(“htmlfile”).parentWindow.clipboardData.GetData(“text”)
    End If
    Set objVIEW_XML = Nothing
    .Quit
    End With
    GetFilePathIE2 = stmXml

    Set olkApp = CreateObject(“Outlook.Application”)
    Set objFSO = CreateObject(“Scripting.FileSystemObject”)
    Set stmXml2 = objFSO.OpenTextFile(stmXml, 1)
    ‘ 1 行目はビューの名前と種類
    strLine = stmXml2.ReadLine
    arrLine = Split(strLine, vbTab)
    Set colViews = olkApp.ActiveExplorer.CurrentFolder.Views
    Set curView = colViews.Add(arrLine(0), arrLine(1), 0)
    If Err.Number = 5 Then ‘ 同名のビューが存在した場合のエラー処理
    For Each curView In colViews
    ‘ 同名のビューを検索
    If curView.Name = arrLine(0) Then
    Exit For
    End If
    Next
    End If
    curView.XML = stmXml2.ReadAll
    curView.Save
    curView.Apply
    stmXml2.Close

  5. すいません、先ほどコメントを残したものですが、時間がなかったので取り急ぎにしてしまいました。

    outlookの添付ファイル名前 添付ファイルサイズ 送信者 日時
    などをエクセルで出力できるマクロはありますでしょうか。
    ExchangeServerのスクリプトを二週間ほど探していたのですが思うような結果が得られず、
    是非ともあなた様にご教授願いたいです。
    Outlookは2013以降のバージョンになります。(2016かと思います)

  6. いつも参考にさせていただいています。

    Outlook 2016をExchange Onlineに接続している状態で、共有メールボックスの仕訳ルールを
    設定するのに、下記URLに記載のあるアカウントの追加設定(Outlookの手順)を実施する必要があります。

    https://support.office.com/ja-jp/article/%E5%85%B1%E6%9C%89%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AB%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%99%E3%80%82-b0963400-2a51-4c64-afc7-b816d737d164

    ただし、セキュリティの観点からクライアントでのOutlookでのアカウントの追加設定メニューはGPOにより利用できないようになっており、管理者にてスクリプト等で設定を行う必要がありそうです。

    Outlookのスクリプト、マクロ等で、アカウント設定を行う仕様のものを作成することはできますでしょうか。

    お忙しいところ恐れいりますが、ご返信などを頂けますと幸いです。

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

  7. こんにちは。以下のサイトに関して質問です。
    https://outlooklab.wordpress.com/2009/08/15/%E6%9C%80%E5%88%9D%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E5%B8%B3-%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97/
    「最初に表示するアドレス帳-を変更するスクリプト」と同じ事をOutlook2016で行いたいです。
    Outlook2016ではレジストリの位置が異なるようです。
    スクリプト内の「MAPI_PROFIKE_KEY」が”HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Profiles”に移動しているらしい事は予想できたのですが、
    残りのキーは全て変更なしと思って大丈夫ですか?
    Outlook2016用のスクリプトがあれば嬉しいです。

  8. こんにちは。

    outlookの開封確認について、質問です。
    開封確認のオプションを設定している添付レートを使用してメールを送信すると、
    開封確認の通知メールが送信者ではなく、添付レートの作成者の元に通知されるという事象が発生しています。
    通知が届く添付レートの作成者は、現在、宛先・cc・bcc共にアドレスは設定されていません。

    通知が届いて欲しい送信者ではなく、添付レート作成者の元に通知が届いてしますようなオプション設定はありますか?(例:開封確認を転送するような機能)

  9. こんにちわ。
    指定のタイトルのメールを受信した場合に、本文の一部をエクセルにコピーするマクロはどのように作成するか、教えていただけないでしょうか。
    例えば
    タイトル
    ・タイトル
    本文
    ・番号:〇〇○
    ・氏名:△△△
    ・住所:◻︎◽︎◻︎
    ・生年月日:××
    ・依頼内容:☆☆☆
    というメールを受け取った際に、番号欄の〇〇○、氏名欄の△△△、依頼内容の☆☆☆のみを指定のエクセルデータに一覧として出力をしたいです。
    エクセルの1行目には番号、氏名、依頼内容など項目名は事前にある状態です。
    複数のメールの内容を一つのエクセルに一覧として入力をしたいです。
    以上、よろしくお願いします。

  10. 教えてください。Outlook 2016 のメールのエクスポートコマンドを、VBScriptから呼び出して
    定期的に受信トレイのメールをPSTファイルをバックアップする方法を知りたいです。

    フィルターとして受信日時を直前のバックアップ日時以降として、PSTファイル名は現日時と
    することで、重複なしでバックできると、嬉しいです。

  11. 特定の件名で始まるメールを受信したら、
    添付されたcsvファイルの2行目(1行目は項目名なので除外)を、
    マスター(excel)ファイル最後尾に追加していく
    という処理を自動化したいのですが、
    outlookマクロで可能でしょうか。

    メールの内容を Excel ファイルにかき出すマクロ
    決まった件名で終わるメッセージを受信したら、キーワードを含む 1 行を CSV ファイルに保存するマクロ
    受信したメールに添付された Excel ファイルをもとに別の Excel ファイルの内容を更新するマクロ
    このあたりを参考にしたのですが、
    ・最後尾に追加していく
    ・csvから読み込む
    あたりで詰まってしまいました。

  12. 面談実施者と被面談者との日程調整のためにOutlookを使おうと検討しています。

    マクロを実行すると、面談実施者および会議室等のリソースと面談対象者がスケジュールアシスタントに
    自動で表示できるものができてばと考えています。

    こちらのサンプルも試しましたが、ページが見つからないもしくはなどのエラーが発生してしまいます。
    https://docs.microsoft.com/ja-jp/office/vba/api/outlook.inspector.setschedulingstarttime

    できれば、こちらのサンプルのようなかたちで、更に、面談実施者および会議室等のリソースが自動登録
    できるものが理想です。

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

  13. いつも参考にさせて頂き、
    要望にも対応頂きありがとうございます

    Outlook365
    Windows10(64bit)

    2台の端末で1つのアカウントでログイン(設定)し
    1週間の内、端末Aと端末Bを使用します。

    例えば、月曜に端末Aで送受信等ををし、
    残りの火曜~金曜は端末Bで送受信等とする場合

    送受信メール、連絡先(追加などした場合)の
    各データを同期させたいのです。
    過去の相当古いデータも残しておきたいため
    IMAP等では無理だと判断しています。

    単純にデータ(pst)のエクスポートとインポートを
    日時指定(作成日時、更新日時)で対応しようと考えています。
    マクロ作成可能でしょうか?

    日時指定(作成日時、更新日時)はダイアログで指定ができると有難いです。

    メールの受信トレイ(階層1として)や送信トレイの下層に
    サブフォルダを階層3迄で作成しています。
    送受信後、返信や解答があったものは手動で移動しています。

    サブフォルダを追加した場合もそのフォルダ等も
    エクスポートとインポートの対象になりますよね?

    よろしくお願いします。

  14. 重複メールを削除するマクロについて教えてください。
    ( https://outlooklab.wordpress.com/2014/02/08/%E9%87%8D%E8%A4%87%E3%81%97%E3%81%9F%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E3%83%9E%E3%82%AF%E3%83%AD/ )

    重複メールが見つかった場合に「削除済みアイテム」へ移動するようにするにする場合の下記の行の変更方法を教えていただけないでしょうか。
    ( If colItems(i).Body = colItems(j).Body Then colItems(j).Delete )

    • 「削除する」といっても実際には Delete は削除済みアイテムへ移動するメソッドなので、上記の記述のままでご要望の動作になるはずです。

      • お返事ありがとうございます。さっそく活用させていただきます。

  15. はじめまして。
    質問させてください。
    当方、取引先が多く、OUTLOOKでメールを出す際に、ミスで、ある会社の取引の内容を、別の会社におくってしまうことが、時々起こります。このような場合、精神論で、間違えないように確認してくださいと口を酸っぱく言いますが、なかなか治りません。システム的に、何か打開できないか、検討中です。
    メールアドレスと、本文テキスト内の会社(本文の最初の行の会社名などの情報)を比較して、チェックするなどの方法は、あるもんでしょうか?
    ご存知でしたら、アドバイスを頂けると助かります。
    よろしくお願い致します。

    • はじめまして。最近会社でThunderbirdからOutlook2010に変わり、こちらで勉強させて頂いています。

      Thunderbirdでは出来ていた差出人名をアドレス帳から引っ張ってきて登録があれば、その登録通り表示するマクロをこちらで拝見し、実際に試してみました。(全てコピペし、日本語になっている部分は消しました。)

      すると上手く表示される日と、そうでない日(デフォルト通りアドレスか送信者が設定している名前での表記)があり、1度上手く表示された人でも次の日には表示されない事や登録しているのにも関わらず、1回も上手く表示されないなど、問題が発生してしまいました。

      当方全くマクロには詳しくなく、見様見真似でさせて頂いていますので、どこか問題があるかと思うのですが、思い当たる節がなく……

      とても抽象的なご質問にはなってしまいますが、どうか対策をご教示頂けませんでしょうか。。。

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

  16. 初歩的な質問で申し訳ありません。
    小生の環境は、Windows10/Office365です。
    Excel VBAは趣味として長くやっており、また、Excel VBAからOutlookでの送信も行ったことが多数あります。

    質問内容は以下の通りです。
    Outlookで2つのアドレス”A@Outlook.jp”と”B@Outlook.jp”を持っており、”A@Outlook.jp”が元々あったアドレスです。
    ”A”は個人用に使っており、ボランティアとして参加している団体との送受信用に”B”を使いたいと考えています。
    Excel VBAから差出人を”B@Outlook.jp”としてメールを送信したいのですが、”.Save”で下書きを作り、プルダウンで差出人を切り替えて送信することはできるのですが、どうせなら直接”B”から”.Send”で送信したいと思っております。.Senderとか.SendUsingAccount、.SentOnBehalfOfNameを試しているのですが、いまいち上手くいきません。どうしたらよいのか、お教えください。
    また、その際、表示される名前も”????”ではなく、指定する表示名で相手先に送信したいと思っています。何かいい方法はないでしょうか?

  17. とても素晴らしいサイトにたどりつきコメントさせていただきます。
    お力をお貸しいただきたいです。

    ▼使用環境
    OS:Windows 10 Pro Ver.1803 ビルド.17134.471
    Outlook2016 16.0.9126.2259

    ▼参考にした過去記事
    Excel のリストにしたがってファイルを添付して送信するマクロ

    ▼やりたいこと
    1)グループメールに届くメールを個人メールフォルダ(A)にコピーし、添付ファイルを取り出す。おおよそ30通ほどあります。
      届くメールはタイトルにそれぞれ数字の羅列があります。
      添付ファイルは「0005-0200」形式の名前+.csv/.xls/.pdf の3ファイルである。(B)
      名前は数字部分が都度変わります。規則性はなし。タイトルとの関連性もなし。

      こちらはエクセルVBA(C)にてファイルの取り出し済み。以下の形式でエクセル(C)にリスト出力されています。
       A列:番号(連番のメール番号)
       B列:受信日時
       C列:タイトル
       D列:送信元アドレス
       E列:添付ファイル数
       F列:エクセルファイル名

    2).csv/.pdfファイルは不要なので削除し、エクセルファイル(B)に加工を加え(加工後のもの=B’)、上書き保存する。

    3)個人メールフォルダ(A)のメールに1通ずつ返信する。(一括でやりたい)
      本文に定型文書を添付。
      CCにメールアドレスを追加したい。
      元メールに添付されていたものと同じファイル(B)の加工済みファイル(B’)を添付して送信したい。

    ▼状況
    1)、2)までは運用できている状態です。
    3)からができずに困っています。

    ▼困っていること
    メール1通に対して返信というのは他のVBAを参照してできるかと思いますが、該当ファイルを添付する、更にはこのフォルダ(A)に入っているメールすべてに適用する場合はどのようにしたらよいかわかりません。
    希望としては先にリスト化しているエクセル(C)のタイトルと添付ファイル名の情報をもとに対応する添付ファイルを添付する方法が望ましいと思いますがそもそもOUTLOOK VBAの範疇なのでしょうか。もしくはOUTLOOK VBAで1通ずつならばエクセル(C)の情報は使わずに自動で本文に定型文を追加し、該当ファイル(B’)を添付し送信できるものなのでしょうか。

    お力おかしいただきたく、お願い申し上げます。

  18. いつも参考にさせて頂いております。
    ありがとうございます。

    この度、私(エクセルVBAであれば一通りできるレベル)が所属している会社(Win10 64bit outlook2013 exchange 環境)の部の上司より言われ、今後は各社員の外出先や戻る時間を記載するためのホワイトボードをやめ、各社員の行動はoutlookの共有予定表で把握したいということになりました。

    予定表の共有(名前の横のチェックボックスにチェックを入れればその人の予定が表示される状態)のやり方は分かるのですが、なにぶん人数が多い部署のため、outlookのセットアップをエクセルのVBA(各位にエクセルファイルを配布してそのファイル上に用意されたボタンを押すとoutlookのセットアップを自動でやってくれるイメージ)でやりたいと考えております。

    私が所属している部は1課と2課に分かれているのでその2つのグループに分け、各50人くらいずつの登録をVBAで行いたいです。

    何卒知恵を頂きたくお願い申し上げます。

  19. outlookのタスクの自動作成に関する情報が少なく困っています。
    ある定型件名のメールを受信した時に、タスクとするスクリプトはどのようにしたら良いでしょうか?
    outlook2010利用です。

  20. いつも参考にさせていただいております。
    予定表の会議出席依頼で、返信のオプション<新しい時間の指定を許可>の指定については
    こちらに記述があったのですが返信のオプション<返信の依頼>に対応するプロパティが分からず
    ご教示いただけないでしょうか。
    PidTagResponseRequestedをFalseに設定してみたのですが、送信者側ではオプションのチェックが
    外れるものの受信者側では変化がありません。

コメントを残す

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

WordPress.com ロゴ

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

Google フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中