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

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

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

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

広告

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

  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時間)

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

  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迄で作成しています。
    送受信後、返信や解答があったものは手動で移動しています。

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

    よろしくお願いします。

コメントを残す

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

WordPress.com ロゴ

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

Google フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中