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

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

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

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

  1. コメント失礼します。
    outlook2010を使用しています。
    現在メールの返信や新規作成時、署名が入るように設定しておりますが、自動転送したメールにも署名が入ってしまっている状態です。
    転送メールを見る際に、一々署名が入っていると見づらいため、転送時のみ署名を消したいと思うのですが何か方法はありませんでしょうか。
    ご回答いただけると幸いです。
    よろしくお願いします。

      • Outlook 予定表について教えてください。
        Outlook2016、Windows10

        新規予定を相手先に送る場合、送信の時間指定はできますでしょうか?
        操作方法含めて、詳しく教えていただけたら、うれしいです。
        Outlookメールでは、配信オプションでできますが、予定表では、やり方が判りません。
        よろしくお願い致します。

  2. はじめまして。
    いつも参考になる多数の記事ありがとうございます。
    さて、投稿されている記事から
    「入力した文字列で検索し、見つかったアイテムをその文字列の名前のフォルダーに移動するマクロ」
    「本文に特定の文面を含む場合に、そのメールとファイルを添付して転送するマクロ」
    「Excel ファイルのキーワードをもとに転送するマクロ」
    などを参考にマクロを作成しているのですが、どうもうまくいかず、助言をいただきたくコメントさせていただきました。
    いま作成しているマクロは下記のようなものです。
    1.EXCELにOutlookフォルダ名と特定のキーワードを保存(複数キーワードでのAnd/Or条件)
    2.EXCELに記述したOutlookの特定フォルダから特定のキーワードを含むメールをローカルフォルダにmsgファイルとして保存
      この時、キーワードが件名に含まれるか、本文に含まれるか、添付ファイル内(Excel,Word,Ppt,PDF等)に含まれるかをEXCELに結果出力
    3.保存したmsgファイルの添付ファイル(EXCEL,Wordのみ)の該当キーワード部分を色付する。

    まず、お聞きしたいのは2の時に添付ファイル内にキーワードが含まれるメールの保存方法です。
    私が試したのは、EXCELからマクロを実行し、Outlookの検索窓にキーワードを入れ、検索結果を表示(ここまではうまく動きました)
    その後に検索結果のメールをmsgとしてローカルに保存する方法が分からず、一旦諦め。
    次にEXCELからマクロを実行し、GetNamespaceから該当のメールフォルダを捕捉、
    含まれるメールアイテム1件ずつを、InstrでSubjectとBodyで検索、検索結果はEXCELに出力。
    添付ファイルが含まれる場合には、その添付ファイルを全てローカルフォルダに一時保存し、
    一時保存したフォルダに対してShellとFileSystemObjectを使いNavigateやFilterViewで、
    キーワードが含まれるかどうか判断(残ったファイル数が1以上なら含まれる)する。
    その後、一時保存ファイルは削除し、判断結果によって該当のメールをmsgとして保存する。
    かなり力技ですが、この方法は何とか動きました。
    ですが、非常に時間が掛かるのと、FileSystemObjectのFilterが終わっているかが判断できず、
    稀に検索が失敗(キーワード含まれるのに無と判断)してしまいます。
    何とかスマートに作動させる方法が無いでしょうか?一旦諦めた検索結果メールを取得できるのが良い気がしますが・・・

    それが、出来れば上記3の添付ファイルを開いて文字への色付ですが添付ファイルを開いて編集し、
    上書きする方法を、合わせてご教示いただければと思います。VBA(EXCELマクロ)については、
    ある程度分かりますので、色付などは問題なくできると思っています。

    長文になってしまいましたが、何とかお知恵をお借りできればと思います。
    宜しくお願い致します。

    【マクロ使用環境】
    Windows 7
    Outlook 2013
    Excel 2013

    • 実行しようとしている内容が非常に高度であるため、マクロでの実装は困難でしょう。
      まず、件名、本文、添付ファイルの内容について検索するには、Windows Search での検索を実行する必要があります。
      マクロで Windows Search での検索をするには Explorer.Search を使用しますが、このメソッドで検索されたアイテムだけにアクセスするというメソッドは用意されていないため、この結果をマクロで使用することはできません。
      マクロではなく C++ で実装すれば Windows Search の API を呼び出して処理することも可能かもしれませんが、ちょっと大掛かりになりすぎますし、どの程度のコードが必要なのかの予測もつきません。
      そのため、力技といわれている方法で検索を実行する以外に手段はないと考えられます。
      なお、添付ファイルを開いて編集し、上書きするという処理を実装するとなると以下のような形になるでしょう。
      1. Outlook で添付ファイルをローカルに保存する
      2. 保存したファイルを編集できるアプリケーションのマクロを使ってそのファイルを開き、編集して上書き保存する
      3. Outlook でメールの添付ファイルを削除し、2. で編集したファイルを追加する
      これも複雑であり、ファイルの種類ごとにコードを書く必要があるため、私の力量ではカバーしきれません。

  3. 困っているので教えてください。
    Office2013ProPlusを使っていますが、Excel2013の起動が不安定になったため、やむなくOffice自体の再インストールを実施することにしました。
    Outlook2013についてはフォルダ構成や振り分けなどの設定を入れているため、完全に元に戻したいと思っています。
    そこでアカウント情報や振り分けルールなどを完全に戻す方法を教えていただけませんでしょうか?
    なお、pstファイルのエクスポートは振り分けのエクスポートなどは検索して見つかったのですが、メールアカウントのバックアップ方法は見つからなかったため、質問させていただきます。
    よろしくお願いします。

    • Office のアンインストールや再インストールではメール アカウントの設定などは削除されませんのでご安心ください。
      どうしても心配であれば、以下のレジストリとフォルダーをバックアップしておいてください。

      レジストリ:
      HKEY_CURRENT_USER\Software\Microsoft\Office\15.0

      フォルダー:
      c:\users\ユーザー名\AppData\Local\Microsoft\Outlook
      c:\users\ユーザー名\AppData\Roaming\Microsoft\Signatures

  4. WebにOutlookのVBAの情報が少ないため、いつも活用させていただいております。
    ありがとうございます。

    現在、メール送信後に、自動で送信済みアイテムフォルダから
    異なるデータファイルの別のフォルダへメールをコピーするマクロを作成しております。

    「送信済みフォルダーに保存されるメールにフラグを自動的につけるマクロ」
    (https://outlooklab.wordpress.com/2015/01/31/)を参考にさせていただき、
    作成していますが、コピー先のフォルダの指定で躓いています。

    コピー先のフォルダがデフォルトのデータファイルではない場合、どのように指定すればよいのでしょうか?
    (仕分けルールでは、下書き状態のメールがコピーされてしまうため、出来ませんでした。)

    マクロは以下のようにしています。

    Dim WithEvents mySentItems As Items

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Set mySentItems = Session.GetDefaultFolder(olFolderSentMail).Items
    End Sub

    Private Sub mySentItems_ItemAdd(ByVal Item As Object)
    If TypeName(Item) = “MailItem” Then
    Dim myItem As MailItem
    Dim myCopiedItem As Outlook.MailItem
    Dim myFolder As Outlook.Folder
    Set myItem = Item
    Set myCopiedItem = myItem.Copy
    Set myFolder = ‘ ここの指定がわかりません。
    myCopiedItem.move myFolder
    End If
    End Sub

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

  5. 助けてほしいです。
    小さい転職先の会社でOutlook 2013をIMAPで使っているのですが、色分類項目が使えません。POPに変えると他の端末(IPHONE)からメールが見れないくなると聞きました。この分類項目を是非使いたのですが、方法はあるのでしょうか?
    宜しく、お願い致します。

  6. oulook2010のデフォルト設定では、
    受信トレイに新着メールがあると通知領域に封筒のアイコンが出ますが、
    新着メールが仕分け条件にヒットし他のフォルダに仕分けられると封筒のアイコンが出ません。

    新着メール受信で常に封筒のアイコンを出すマクロを作ることはできるでしょうか?

  7. ユーザフォームを使ってアンケートを収集したい。

    はじめまして、Hiroと申します。
    OutlookのVBAスクリプトを作成する必要があり、参考にさせていただきたいと考え、
    投稿を読ませていただいています。

    [やりたいこと]
    最初に記載しました通りユーザフォームを使ってアンケートを集約したいと考えております。
    こちらがアンケート用のフォームを作成し、対象者がそのフォームに入力したうえで
    ユーザフォーム内の「送信」ボタンを押したら私宛にその回答内容が返信されるようにしたいと存じます。

    [シーン]
    ・まずアンケートを取りたい人Aとアンケートを回答する人B(Bは複数)がいる

    ・Aがユーザフォームを使ったアンケートをBに送信
     ⇒Bがアンケートのフォームとなったメールを受け取る。

    ・Bがアンケートフォーム内にあるチェックボックス、リストボックス、テキストボックスに回答を入力する。

    ・Bが「送信」ボタンを押すとA宛に下記のメールが送信される。
     ⇒・フォームに入力された内容がメールの本文に書きだされている
      ・フォームに入力された内容がExcelに書き出されてメールの添付となっている

    ・VBAスクリプトやフォームを作成するのはもちろんA

    [特にできるようになりたい機能]
    ・ユーザフォーム内の「送信」ボタンを押したらメールを送信する機能
     ボタンとスクリプトを関連付ける方法
     そのスクリプトでメール送信をするコマンド(方法)

    ・エクセルファイルを開き、内容を書き込んでメールの添付ファイルとする方法
     添付ファイルの指定

    [情報]
    使用環境はWindows10、Outlook2010です。
    私自身はOutlookによるVBAは完全に初めてですが、
    プログラム関連は20年近く経験があります。
    ※プロのプログラマーとしての経験はなし、
     C言語を大学での授業やなどで10年ほど
     MATLAB/Simulinkを業務で10年程度
     EXCELでのVBAを仕事に有用なアプリ作成など
     

    • Outlook で HTML 形式の本文にフォームやスクリプトを埋め込んでを送信したとしても、受信側ではそのフォームやスクリプトは動作しません。
      メールの送信者が何らかのスクリプトを埋め込んで、それを受信者側で動作可能にすると、ウイルスなどに悪用されるためです。

  8. エラーを回避出来ず、悩んでいます。

    メールの本文をExcelシートに追記したいです。
    メール本文
    日時 AAA
    場所 BBB
    プロセス CCC
    バッテリ残量 DDD
     :
     など40項目程度

    Excelシート
    日時  場所  プロセス  バッテリ残量  ・  ・  ・  40項目程度
    AAA  BBB  CCC    DDD    
    AA1  BB1  CC1    DD1

    項目の順番がメール本文とExcelで合致しないため、メール本文の項目を抜き出しExcelの項目から検索して追記をしたいのですが、For文の2回目でエラーになります。
    メッセージ
    「オブジェクト変数またはWith ブロック変数が設定されていません。」

    以下プログラム

    ‘ TABで区切られたメール本文をExcelシートの項目に追記する
    ‘ メール本文の設置場所に記載されている場所と
    ‘ プロセスに記載されている状態をファイル名とする

    Public Sub ExportBodyToExcel()

    ‘ エクスポートする Excel ファイルのファイル名を指定
    Const Carent_Dir = “c:\temp\”
    Dim objBook As Object
    Dim objSheet As Object
    Dim r As Integer
    Dim strBody As String
    Dim strl As String
    Dim c As Variant

    ‘ メール状態の確認
    If TypeName(Application.ActiveWindow) = “Inspector” Then
    strBody = ActiveInspector.CurrentItem.Body ‘ 開いてる
    Else
    strBody = ActiveExplorer.Selection(1).Body ‘ 閉じてる
    End If

    If “” GetValueByToken(strBody, “設置場所”, False) Then
    ‘ メール本文の設置場所名のEcxelファイルを作る
    FileName = GetValueByToken(strBody, “設置場所”, False)
    EXCEL_FILE = Carent_Dir & FileName & “.xlsx”

    ‘ Excel ファイルを開く
    Set objBook = GetObject(EXCEL_FILE)
    objBook.Windows(1).Activate
    Set objSheet = objBook.Worksheets(1)

    ‘ 空行を探す
    r = 1
    While objSheet.Cells(r, 1) “”
    r = r + 1
    Wend

    ‘ メール本文の最後まで一行ずつ切り出す
    For s = 1 To Len(strBody) – 1
    e = InStr(s, strBody, vbCr) ‘ 改行までの
    strLine = Mid(strBody, s, e – s) ‘ 1行ずつ切り出す
    s = e

    t = InStr(strLine, vbTab) ‘ TABまでの文字数
    strTit = Mid(strLine, 1, t – 1) ‘ TABまでの文字列
    strVle = Mid(strLine, t + 1, Len(strLine)) ‘ TAB移行の文字列

    c = objSheet.Range(“A1:BZ1”).Find(strTit).Column   <—-ここでエラー
    objSheet.Cells(r, c) = strVle
    Next

    どうしたらよいのでしょう。
    ご教授お願いします。

  9. こちらのサイトいつも参考にさせていただいております。ちょっと諦めかけているのですが、
    お知恵をお借りしたく、よろしくお願いします。

    【フォルダサイズを取得したい】
    選択されたフォルダ以下の合計サイズを取得する

    【相談事項】
    対象フォルダやファイル数が多いと、とてもじゃないですが遅くて使い物になりません。
    Outlook上のフォルダを右クリック-プロパティ-フォルダサイズで確認できますが、とても速いです。
    ただしこちらはデータをコピーすることができません。
    もちろんFor Eachで足し算しているところが遅い原因です。なにか違うメソッドでもあるのでしょうか?

    【参考】
    ttps://gallery.technet.microsoft.com/office/c9c72a2e-3ed0-47b4-a044-3bc2197b59cf

    【コード】
    Sub GetSubfolders(ByVal objParentFolder As Outlook.Folder, ByRef aryFolder As Variant)
    Dim colFolders, objFolder, objSubfolder, oFolder As Outlook.Folder
    Dim objItem As Object
    Dim intSize As Long
    Dim strParentName As String

    ‘ 現フォルダの参照
    Set colFolders = objParentFolder.Folders

    For Each objFolder In colFolders
    Set objSubfolder = objParentFolder.Folders(objFolder.Name)

    Call GetSubfolders(objSubfolder, aryFolder)

    ‘ 選択フォルダ直下のメールの合計サイズ
    intSize = 0
    For Each objItem In objFolder.Items
    intSize = intSize + objItem.Size
    DoEvents
    Next
    ‘ 選択フォルダのサイズを配列へ格納する
    ReDim Preserve aryFolder(UBound(aryFolder) + 1)

    ‘ サブフォルダのサイズを取得
    aryFolder(0) = aryFolder(0) + Int(intSize / 1024)
    aryFolder(UBound(aryFolder)) = objFolder.FullFolderPath & “,” & Int(intSize / 1024) & “,KB,” & objFolder.Items.Count & “,Files”
    Next
    End Sub

    Sub GetFolderSize()
    Dim objFolder As Outlook.Folder ‘フォルダー
    Dim aryFolder As Variant
    Dim intSize As Long
    Dim objItem As Object

    ‘ 選択フォルダへの参照を取得
    Set objFolder = Application.ActiveExplorer.CurrentFolder

    ‘ 配列の宣言
    aryFolder = Array()

    ‘ 選択フォルダへのサイズを取得
    intSize = 0
    For Each objItem In objFolder.Items
    intSize = intSize + objItem.Size
    Next
    ReDim Preserve aryFolder(UBound(aryFolder) + 2)

    ‘ 選択フォルダのサイズと総合計を配列へ格納する
    aryFolder(0) = aryFolder(0) + Int(intSize / 1024)
    aryFolder(UBound(aryFolder)) = objFolder.FullFolderPath & “,” & Int(intSize / 1024) & “,KB,” & objFolder.Items.Count & “,Files”

    ‘ サブフォルダのサイズを取得
    Call GetSubfolders(objFolder, aryFolder)
    aryFolder(0) = aryFolder(0) + “,KB”

    End Sub

      • PST ファイルや OST ファイルならそれほど時間はかからなそうなのですが、Exchange サーバーにオンライン モードで接続している状況でしょうか?

      • コメントありがとうございます。
        下記に返信リンクがでない為、こちらに回答します。

        参照先はPSTファイルです。サブフォルダは100-120くらい、それぞれのフォルダに1000-1500件ほど
        保存しています。PSTファイルで4-6GBです。

        どんどんメールがたまっていくため、優先的に添付ファイルを整理するため
        フォルダ単位でサイズを取得したく。。。

        右クリック-プロパティ-フォルダサイズ で 大よそ20-30秒くらい、
        このマクロでは6000件の合計を計算させるだけで30秒はかかってしまいます。。。

      • PSTでも発生となると、ディスクアクセスなどがボトルネックになっているように思われます。
        優先的にサイズが大きいメールを処理したいということなら、検索フォルダーの[サイズの大きなメール]を使ってみてはどうでしょうか?

  10. マクロ作成について、ご教示ください。
    outlook2013を使用しています。

    ある特定の期間に受信したメールのうち、
    件名に特定のキーワードが入っているメールをカウントし、
    件数とその件名を抽出したいと思っています。

    また、今日を基準に、先月を自動算出し、
    先月分の条件に該当するメールをカウントするなどは可能でしょうか。

    よろしくお願いします。

  11. すみません、教えてください。Office 365 より Office 製品をダウンロードして利用しています。SharePoint Online で何か不具合があるらしく、Office 2013 を利用しています。最新版があたっているのですが、メールを作成途中になぜかクラッシュしてしまいます。周りの人も同じような状況でクラッシュしているのでアカウントの問題ではなさそうなのですが、何か改善する方法はありますでしょうか?

    バージョンは以下になります。
    15.0.4893.1000 MSO (15.0.4893.1000) 32 ビット
    Microsoft Office 365 ProPlus の一部

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

    • メールの作成中にクラッシュとなると、Word のコンポーネントの不具合の可能性もありますね。
      ひとまず、2 月中にリリースされる Outlook と Word の修正を適用してみてください。
      また、頻繁にクラッシュするようならマイクロソフトのサポートに問い合わせてみてください。

      • ありがとうございます。2月にリリースされる Outlook と Word の修正を適用して様子を見ようと思います。

  12. Liveメールの送信済みアイテムの画面で送信したメールのマークが開いた状態になっていますが、相手が見たら開いたマークにできませんか?相手が既読したかどうかの確認メッセージは要りません。

  13. メールの本文など、あるキーワードを選択した状態で、
    右クリック->Google検索(マクロ)->ブラウザが起動(googleサイトで検索)
    となるようなマクロは作成できませんでしょうか?

  14. 色々検索していたらこのサイトにたどり着きましたので、お世話になりますが質問させていただきます。
    outlook2013を使用していますがメールを受信したら本文を自動で読み上げるという事をやりたいのですが仕分け等の機能を探してもみつかりませんでした。VBA等を使いメール着信後、本文を読み上げる事はできないのでしょうか?コピペし専用ソフトで読み上げる事は出来ますが、特定のアドレスに送られたメールを自動で読み上げてもらいたいと思います。

    使用環境は、
    Windows10
    Outlook2013

    • Outlook のルールやマクロではメールの本文を読み上げるという機能はないのですが、Excel の機能を使えばできるかもしれません。
      受信したらすぐにメールの読み上げをするということで良いのでしょうか?
      何らかの作業中や電話中に突然メールの読み上げが始まるというのは、ちょっと不都合があるのではないかと思いますが。

      • 早速の回答有り難うございます。お世話になります。
        受信後、直ぐにメールを読み上げて構いません。
        私もエクセルに貼り付けて読み上げさせてみましたが単語登録がないため結構読み違いが多かったので、
        今はSofTalkというフリーソフトに単語登録し使用しています。
        エクセルに単語登録できれば良いのですが・・・。いずれにしても自動で読み上げてくれれば大変たすかりますのでよろしくお願いいたします。

  15. お世話になります。windows7でoutlook2010を使用しています。超初心者で基本の質問で申し訳ありません。
    「受信したメールの添付ファイルを自動保存するマクロ」を仕分けルールのスクリプトで使いたく、マクロをVBA project.OTMのMicrosoft Outlook Objects内のThisOutlookSessionに張り付けたのですが、スクリプトを選択できません。どうしたらよいでしょうか。

  16. 別件(祝日追加)でマクロを利用させて頂き大変助かりました。

    可能であればマクロ作成をご検討頂きたいのです。

    OS:Windows 7 Professional(64bit)
    Outlook2013

    Outlook.comのアカウントの予定を個人の予定表として利用する為
    アカウント登録し、Outlook2013側で
    Outlook.comアカウントの予定を入力しております。

    Outlook2013の予定表でも同様だとは思うのですが
    予定の【件名】【場所】に入力した文字を検索は可能なのですが
    置換をしたいのです。

    よろしくお願い申し上げます。

  17. 上記に追記です。

    CSVでエクスポートし置換えた後に
    CSVでインポートという方法で可能なのは承知していますが
    以下の理由でCSVのインポートは避けたいという状況です。

    Outlook.comをAndroidのアプリで見ると表示されかなったりとなります。
    原因はバージョンの違いのように思います。

    予定表のビューで一覧にし、
    表示フィールドに【バージョン】を表示させると以下の状況となります。
    Outlook2013で入力(データ更新)分 バージョン【15.0】
    AndroidのOutlookで時間等を更新 バージョン【15.1Ex】
    CSVでインポート バージョン【空欄】

    CSVデータに【バージョン】の情報はエクスポートされないようです。
    CSVデータに【バージョン】の情報はエクスポートされ
    【バージョン】の情報【15.0】でインポート可能であれば問題ないのかもしれません。

    よろしくお願い申し上げます。

  18. win10(32bit)、outlook2016を使用しています。以下の操作を手作業でやっていますが、マクロで行うことは出来ますでしょうか。
    ・サブフォルダにある複数のメールを選択。(サブフォルダ内の全てのメールでも構いません。)
    ・選択した状態で「ファイル」「名前を付けて保存」をクリック。
    ・任意のフォルダを指定、「ファイルの種類(テキスト)」を選択、ファイル名は例えば「123.txt」として保存する。
    (結果的に、複数のメールの内容が並んだ1つのテキストファイルが作成されます。)

  19. Windows7(32bit)Outlook 2016をMicrosoft Exchangeで使用しています。
    以前、Outlook 2013を使用していたときに、アドレス帳に登録してある名前を連絡先に関連付ける下記のマクロを使って、差出人の名前を表示していました。
    ところが、同じマクロをOutlook 2016で使うとエラーが出てしまい、どこをどう修正して良いか分かりません。
    どなたか、分かる方はいらっしゃいませんか?

    Sub 関連付け()

    Set myNamespace = Application.GetNamespace(“MAPI”)
    Set myCfolder = myNamespace.GetDefaultFolder(olFolderContacts)
    Set myMItems = Application.ActiveExplorer.Selection

    For Each myMitem In myMItems
    With myMitem
    If .Class = olMail Then
    myAddress = .SenderEmailAddress
    For Each myCitem In myCfolder.Items
    Select Case myAddress
    Case _
    myCitem.Email1Address, _
    myCitem.Email2Address, _
    myCitem.Email3Address
    .Links.Add myCitem
    .Save
    End Select
    Next myCitem
    End If
    End With
    Next myMitem

    End Sub

  20. Windows8.1 (64bit) Outlook2013 (64bit)を使用しています.
    Subjectの先頭に”Re:”以外の文字が入ると,スレッドが切れてしまうことを避けるため,他のサンプルを参考にさせていただき,下記の置換をしました.
    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim objItem ‘As MailItem
    Dim msgItem As MailItem
    Set objItem = Session.GetItemFromID(EntryIDCollection)
    Set msgItem = objItem
    If msgItem.Subject Like “回:Re:*” Then
    msgItem.Subject = Replace(msgItem.Subject, “回:Re:”, “Re:”, 1, 1, vbBinaryCompare)
    End If
    msgItem.Save
    End Sub
    ところが,プレビューではRe:となるのですが,スレッドは回:Re:のままでスレッドは切れました.
    スレッド表示にはheaderの中のMIME encodeされた部分を参照しているのかもしれませんが,マクロで対策する方法はありませんでしょうか?
    よろしくお願いいたします.

    • 残念ながら、スレッド表示をマクロで制御することはできません。
      Outlook ではスレッドを独自の方法で管理しており、件名を変更するとスレッドが分離する動作となっています。

  21. いつもこちらのVBAを見て勉強をさせていただいております。Outlookの予定表からCSVをエクスポートをするというマクロを基にファイルを作成しているのですが、一点どうしても回避できないエラーが発生してしまい、ご相談させていただきます。

    予定表の件名のところになるのですが ”✳会議”など 通常の記号ではないものが入力されたときに
    実行時エラー=’5’ プロシージャの呼び出し、または引数が不正です。というメッセージが表示され
    止まってしまいます。
    中味を確認すると objAppt.Subject = ”?会議”となっており StrLineで”?”を置き換えても
    全く エラーが回避できない状態になっています。

    XX = Replace(strLine, “?”, ” “)

    stmCSVFile.WriteLine  XX  ← ここで デバック。

    大変お手数ですが 回避方法を教えていただけますでしょうか。よろしくお願いいたします。

    • VBA のエディタは Unicode に対応していません。
      そのため、日本語環境で日本語以外の文字を使用していると、デバッグ画面では “?” と表示されます。
      ただし、実際の文字は “?” ではないため、Replace で “?” を使って置き換えることもできません。
      エラーを回避するには、CSV ファイルを開く際の CreateTextFile や OpenTextFile で Unicode を指定して開く必要があります。
      なお、CSV ファイルを Unicode で作成した場合、そのファイルをダブルクリックして Excel で開くと文字化けが発生しますので、注意が必要です。

  22. Excelファイルで集計表を作成し、マクロや数式を省き値に変換したものを別シートに移し、これをコピーして新規ブックを「特定のフォルダ」に保存。

    更に同じファイル上でマクロを実行、メール作成画面起動、定型文入力後、上記で保存したファイルを添付するよう「ファイルを開くダイアログ」を表示させたいのですが、プログラムで指定するフォルダが開きません。

    集計表の種類により保存するフォルダが変わる為、それぞれフォルダを別個に指定したプログラムで運用していますが、直近で添付したファイルのフォルダが開いてしまいます。

    該当のフォルダが存在しないとエラーになるので、あと一歩で何とか出来そうな気がするのですがうまくいきません。

    指定通りのフォルダが開くように修正できればありがたいです。
    宜しくお願いします。

    使用環境・・・
    OS:Windows7及びWindows10
    アプリケーション:Office2010

    VBAファイルの保存先:Cドライブ
    帳票ファイルの保存先:Dドライブ\フォルダ

    Sub メール作成()

    ‘ 添付ファイルをメールで送信
    ‘ Outlook専用

    Dim oApp As Object
    Dim objMAIL As Object
    Dim strMOJI As String
    Dim strSign As String

    On Error Resume Next
    Set oApp = GetObject(, “Outlook.Application”)
    On Error GoTo 0
    If oApp Is Nothing Then
    Set oApp = CreateObject(“Outlook.Application”)
    oApp.GetNamespace(“MAPI”).GetDefaultFolder(6).Display
    End If

    Set objMAIL = oApp.CreateItem(0)

    ‘本文の作成
    strMOJI = “ABC商事株式会社” _
    & vbCrLf & ” ” _
    & vbCrLf & “総務課 ○○様” _
    & vbCrLf & “写し:㈱COPO ○○様 ” _
    & vbCrLf & ” ” _
    & vbCrLf & ” ” _
    & vbCrLf & “いつもお世話になっております。” _
    & vbCrLf & ” ” _
    & vbCrLf & “標記の件、ご依頼の備品調査表、送付させていただきます。” _
    & vbCrLf & ” ” _
    & vbCrLf & “以上、宜しくお願い致します。” _
    & vbCrLf & ” ” _
    ‘署名作成
    strSign = “* ・ * ・ * ・ * ・ * ・ * ・ * ・ * ・ * ・ * ・ *” _
    & vbCrLf & “ 株式会社 COPO” _
    & vbCrLf & “ 山田 タロウ (内線111)” _
    & vbCrLf & “ E-mail yamada-taro@ac.copo-net.jp” _
    & vbCrLf & “* ・ * ・ * ・ * ・ * ・ * ・ * ・ * ・ * ・ * ・ *” _
    & vbCrLf & ” ”

    objMAIL.To = “abc.syoji@ab.abc.com”
    objMAIL.CC = “oo.kaco@ac.copo-net.jp”
    ‘objMAIL.BCC =
    objMAIL.Subject = “備品調査票送付の件”
    objMAIL.Body = strMOJI & vbCrLf & strSign
    objMAIL.Display

    Set TestObj = objMAIL.GetInspector.WordEditor

    Set objMAIL = Nothing
    Set oApp = Nothing

    ChDrive “D”     ’ここと・・・
    ChDir “D:\調査表”  ’ここです

    ‘ファイル添付
    DoEvents
    ‘「ファイルを開く」ダイアログを開きます
    With CreateObject(“WScript.Shell”)
    .SendKeys “%NAF”, True ‘添付ファイルの参照
    End With
    DoEvents
    End Sub

    • お世話になっています。
      添付ファイルの件(フォルダ指定ができない)、自己解決しました。

      【Outlook でフォルダ選択のダイアログを表示するマクロ】の解説で「Outlook 自体には Excel や Word のようにファイルの保存ダイアログを表示する機能はありません。」・・・という事でしたので、
      ファイルを開くダイアログ表示は、いささか無理があるものとあきらめました。

      そこで、パス毎直に指定したファイル名を「変数」に格納して対応させるように変更しました。

      帳票作成後のコピーの保存で自動的に付けられるファイル名を、作業シート上のセルに書出、これを変数に格納して対応させます。

      帳票作成からメールの送信まで、すべてマクロで実行でき、ファイルを開くダイアログを表示してファイルを選択させるより、スムーズに正確な作業が出来ることとなりました。

      以上報、告まで。
      また何かありましたら宜しくお願いします。

      ‘帳票作成作業のVBAに下記を追加
      Cells(24, 10).SELECT
      ActiveCell.FormulaR1C1 = 自動保存のファイル名の変数

      ‘追加した構文・・・
        Dim bookName As String

      bookName = Cells(24, 10) ’ファイル名が入力されたセルの値を変数に格納

      objMAIL.display’のあとに・・・
      objMAIL.Attachments.Add bookName ’変数に格納されたファイルを添付

  23. はじめまして。こちらのサイトでいつも
    Outlookのマクロ勉強させていただいています。

    受信トレイを未読メールのみにしたいのですが
    メールを開封済みにした際
    自動で別フォルダへ移動させることは
    出来るでしょうか。

    仕事でまだ処理していないメールを未読にしているのですが
    開封済みメールに埋もれてしまい処理漏れしてしまいます。
    手動で1件ずつ別フォルダへ移動させるのは
    大変なのでどうにか自動化できないかと考えています。

    使用環境は
    Windows7 + Outlook2010 です。

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

    • はじめまして

      こちらのページは大変参考になり、私も勉強させていただいています。
      「未読メール」だけをまとめたいだけでしたら「Outlook」の機能で可能です。
      ※別フォルダーに移動するわけではありません

      複数のフォルダーにわたるすべての「未読メール」を「未読フォルダー」にまとめて表示することが可能です。
      「未読フォルダー」は下記の手順で作成します。

      1.検索フォルダーを右クリックし、[新しい検索フォルダー] をクリックします。

      2.新しい検索フォルダーダイアログから、[メールの読み取り] セクションで [未読のメール] を選択し、[OK] をクリックします。

      3.作成された「未読メール」フォルダをお気に入りにドラッグします(ショートカットが作成されます)。
      ※あえて、お気に入りに表示しなくてもいいですが便利かと思います

      参考ページ
      Outlook2010:未読のメールフォルダを作成するには
      http://outlook-navi.com/qa/ol97.htm

      • halyakko さん、こんばんは。

        なるほど!
        検索フォルダを使うと
        未読メールだけまとめられるのですね。

        お気に入りに表示させて
        さっそく使います。

        ありがとうございました。

  24. 初めまして。現在特殊な環境でexchange2010にmapiで接続する際、接続できなくて困っております。
    環境は、ドメインa にexchange、adのユーザーがいるのですが、
    ドメインbに参加している仮想マシンに、ドメインaのユーザでログインし、outlookで受信しようとしており、NGとなります。

    なお、ドメインa bは双方の信頼関係を結んでおります。

    そのため、owaでは、パスワードの入力も必要なく正常に閲覧できております。

    exchange側に、何か追加設定が必要なのでしょうか?
    それともクライアント側に何か設定した方がいいのかわからない状態です。
    確認した方がいいこと等ありましたらお教えいただけないでしょうか。

    よろしくお願いします。

    • これだけだと、何が原因かの判断が難しいです。
      ログの採取などを行って調査する必要があると思いますので、マイクロソフトにお問い合わせください。

  25. こんばんは。
    Outlook 2010で以下のようなことができないか考えています。
    ・連絡先に登録されたメールアドレスをキーワードに、Outlook アドレス帳に設定したLDAPサーバーへ問い合わせて情報を取得し、連絡先を最新化するマクロ
    社内で所属が変わった場合を想定しています。
    よろしくお願いします。

    • 残念ながら、Outlook のマクロでは LDAP サーバーへの問い合わせを行うことはできません。
      アドレス帳で名前解決を実行するというものなら可能なのですが、名前解決で SMTP アドレスを指定した場合、アドレス帳に対して検索が行われずにメールアドレスだけで確定してしまうため、LDAP からの情報取得ができません。

  26. はじめまして。
    いつもサイトを拝見させていただき、大変お世話になっております。
     
    Outlook2013で連絡先の閲覧ウインドウで、名前の下にある4つのアイコンの中から一番右のメールのアイコンからメールを作成しようとすると、宛先にはメールアドレスが表示されます。この時にメールアドレスでなく、連絡先に登録してある表示名を宛先に表示する設定とかあるのでしょうか。新しい電子メールから作成した時と、送信済みアイテムの宛先が異なる名前で残ってしまうのが困っています。
     
    宜しくお願い致します。

  27. 本文や件名に期限が記載されているメールを期限の●日前に自動で自身や指定のMLにリマインドするマクロって作れますか?

    • 期限がどのように記載されているのかが決まっているのであれば、その文字列を解析してアラームを設定することは可能です。
      ただ、ルールが決まっていない場合、テキストから期限を抽出するというのは極めて困難です。

  28.  Outlook新しい予定(無題-予定)を開きます。その後、UserFormに配置されたListBoxから、文字列を選択し、この文字列を新しい予定の[場所]のコンボボックスに入力したいと考えています。
    文字列をstrTextとして
     Active予定Form.combo場所.text = strText
    とできればよいとは思うのですが、「Active予定Form.combo場所.text 」の正しい表現が
    いろいろ調べたのですがわかりませんでした。
     どのようにしたら場所のコンボボックスにマクロから入力できるようになるでしょうか?
     お知恵をお貸しください。

    • 自己レスです
      「アイテムに対してマクロを実行する際の記述方法」という記事がありました
      解決しました
      板汚しすみません

  29. 勝手ながらいつもお世話になっております。

    メッセージ送信の際、ハンドで宛先を(アドレス帳から選択)入力した時は、「連絡先の表示名(漢字表記)」で表記されますが、マクロで宛先・CCをあらかじめ設定していると(自動入力)、宛先・CCがメールアドレスの表記になってしまいます。

    自動入力で間違いは起こりえない筈ですが、送信ボタンをクリックする前に、ざっとでも宛先を確認したいです。
    ※仕事での使用なので、移動等で担当者が変わる場合もありますので・・・。

    しかし、メールアドレス表記では確認作業が若干手間であり、いまひとつでピンときません。
    マクロでの実行(入力)でも「連絡先(アドレス帳)の表示名(漢字表記)」になるようマクロを組みたいのですが方法がわかりません。
    可能であれば例文等、ご教示御願い致します。

    以下、現状です(3月3日に投稿したときのマクロです)。

    objMAIL.To = “abc.syoji@ab.abc.com”
    objMAIL.CC = “oo.kaco@ac.copo-net.jp”

    使用環境:Windows10、Outlook2010

  30. お世話になります。
    Outlook2010環境において、
    マクロで仕訳ルールのチェックのオンオフを操作したいと考えております。
    このルールがオフだったら有効とかオンだったらオフとかをOutlook起動時の操作やメール送受信時の操作を考えています。
    ご教示お願い致します。

  31. はじめまして
    WebにOutlookのVBAの情報が少ないため、いつも活用させていただいております。

    まだまだvbaに関して未熟のため教えて頂きたいのですが、現在”受信メッセージの差出人を連絡先の表示名に置き換え”を使用さして頂いてるのですが、outlook起動時の同期メッセージ?(未起動時の受信メール)は表示名が変更されないのですが、変更することは可能でしょうか?

    それと上記のvbaと同時に”受信メールの宛先やCcをアドレス帳の名前に置き換えるマクロ”を使用したいと考えているのですが可能でしょうか?

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

    • Exchange サーバーを使用している環境でしょうか?
      その場合、Outlook が動作していない場合は NewMailEx が起動しないため、ルールのスクリプトを使う必要があります。

  32. はじめまして、いつもこのサイトの内容に助けられております。
    要望なのですが、メール返信時に特定の連絡先フォルダーを参照して、同じメールアドレスの連絡先の、電子メール2のアドレスに置き換えて返信ウィンドウを開くマクロを作成することは可能でしょうか。
    よろしくお願いします。

  33. はじめまして。
    いつもこのサイトにはお世話になっております。

    ActiveExplorer.CurrentFolder.Items(cntItem)
    を、選択された状態にしたいのですが、下記を調べてもメソッドが分かりませんでした。

    Items オブジェクト
    https://msdn.microsoft.com/ja-jp/library/office/ff863652.aspx

    Explorer オブジェクト
    https://msdn.microsoft.com/ja-jp/library/office/ff860356.aspx

    #.select とか、.Activateとかかと思いきや、思わぬ苦戦を強いられております。

    ご教示頂けますと幸いです。

    • 失礼します。補足です。
      「フォルダを開いたときに最新のメールを選択するマクロ」にて、
      ActiveExplorer.AddToSelection ActiveExplorer.CurrentFolder.Items(cntItem)
      を用いて選択状態にすることが出来ました。

      ただ、やりたかったこととしては10000件を超えるメールが格納されたメールボックスから、2年前の日付のメールをまとめてMailDropZoneというWebアプリ上にドラッグ&ドロップするという作業がありまして、その際まとめて選択したアイテムをドラッグしやすくしたかったので、「選択したい」=「選択されたメールまでメールボックスをスクロールしたい」でした。

      ご教示頂けますと幸いです。

  34. いつも大変お世話になります。

    さて、このサイトを参考に、メールチェッカーを作成し使っております。

    Private Sub Application_ItemSend

    でメール送付時に、作動するようにしております。

    ところが最近、部署を移動したら、スケジュールの承諾/拒否のような感じでスケジュールを

    聞いてくるメールにいくつか出くわし、「承諾」を選択して、送信のような感じで返信するのですが、

    その際、かならず、上記のPrivate Sub が作動し、エラーになります。

    スケジュール確認の場合は、作動させないように、修正コードを入れたいのですが、

    コーディングを教えていただけますと幸甚でございます。

    恐れ入りますが、宜しくお願い致します。

    ぺたぽん 拝

    • Application_ItemSend を特定の条件でだけ作動させないということはできませんので、ItemSend 内で適切な処置をすべきです。
      例えば、メールだけ処理する必要があるなら以下のようにします。
      Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
      If Item Is MailItem Then
      ‘ メールアイテムでのみ行う処理を記述
      End IF
      End Sub

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

    OUTLOOK2013とWEBのOFFICE365をあわせて使っているのですが、OUTLOOK2013上で【条件付書式】にてカレンダーに色づけをした場合、WEBのOFFICE365には反映されないものなのでしょうか?
    分類項目で設定しているものはWEB上でも確認できるものの、条件付書式のものの場合反映されないので、そういうものなのか、何か設定方法があるのかご教示頂けますと幸いです。

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

    • Office 365 の Web でメールを表示する機能は Outlook on the Web と呼ばれますが、こちらでは条件付き書式がサポートされていません。
      そのため、条件付き書式の設定は反映されず、反映する方法もありません。

  36. いつも大変お世話になっております。

    可能であればマクロ作成をご検討頂きたいのです。
    OS:Windows 7 Professional(64bit)
    Outlook2013

    【ビューの定義をエクスポート(インポート)するマクロ】
    【印刷スタイルの定義をエクスポート(インポート)するマクロ】

    ビューの定義や印刷スタイルの定義を社内で統一して利用したい。

    私が現在設定しているビューを
    PC内(Outlook2013)でコピーする事は出来ますが
    別PC(Outlook2013)へビューや印刷スタイルの定義を
    エクスポート(インポート)する事は出来ないでしょうか?
    標準の機能として、これらの定義のエクスポート(インポート)はないようなので
    マクロで作成可能であればお願いしたい次第です。

    ビューについては
    【現在のビューの設定をサブフォルダにコピーするマクロ】や
    2014年2月22日 コメントでの要望を受けての
    全てのストアのフォルダー階層にアクセス可能な
    【現在のビューをすべてのフォルダーに適用するマクロ】
    上記の2つのマクロをどうにかすれば可能なのでしょうか?

    ご検討の程、よろしくお願い申し上げます。

  37. BOLANです。
    OUTLOOK2010 Windows7で
    連絡先フォルダーのメールアドレスを取得したいのですが
    該当するマクロが無いようですが、ご教示お願いします。

    • 連絡先フォルダー自体にはメールアドレスは存在しません。
      連絡先フォルダーに含まれている特定のアイテムのメールアドレスを取得するということでしょうか?
      その場合、具体的にはどのような形でメールアドレスを取得するアイテムを特定する必要があるのでしょうか?

  38. いつも参考にさせて戴いております。今回初めて質問致します。
    HTML形式で図が含まれているメールに対して
    mailItem の reply メソッドを行うと図が保持されますが、本文に何かを追記しようとすると図が失われます。
    保持する方法はありますでしょうか。
    (Outlook 2010 or 2013, VBA はExcel から起動)
    ex) objReply.body = “test” + objReply.body –> 図がなくなる

  39. お世話になります。今回初めてコメントをさせていただきます。Outlook2010、Outlook2013の環境で、決まった差出人のメールを、受信トレイ配下に階層深くチェックした後に、移動させたいのですが、その時にフォルダが存在しない時は、作成してメールを移動させたいのですが、1回目は階層深くフォルダを作成し、移動することはできるようになったのですが、翌日、同じマクロを実行すると、最階層の下にフォルダをまた、階層深く作成してしまって、どうにかして、最階層だけ作成して、メールを移動するようにしたいのですが、よくわからないのです。ご教授いただけると助かります。
    受信トレイから→チェック済→年度→月→日に移動させたいのです。翌日は新しい日のフォルダが月の下に作成されて、メールが移動される。月が変わったら、新しく月と日のフォルダを作成して、日のフォルダにメールが移動される。年度が変わったら、年度、月、日のフォルダが作成され、新しい日のフォルダにメールが移動されるようにしたいのです。マクロVBAを作成した経験がなく、非常に困っております。どなたかご教授いただけると助かります。よろしくお願いいたします。

  40. いつも拝見しています。初めてコメント致します。環境はOutlook2016です。
    リボンのユーザー設定にて新しいタブを作成しました。
    メール画面、予定表画面、タスク画面用にそれぞれ作成したタブを、画面切り替え毎に併せて表示/非表示を切り替えたいのですが、マクロで可能でしょうか?
    Outlookのリボン切替に関するVBA情報が見つけられず苦労しています。
    ご教授いただければ幸いです。

  41. はじめまして。outlookのマクロを調べてココに来ました。
    過去ログを読ませていただいたのですが、幾つかの過去ログを参考にやってみたのですが
    スキルのない私には上手く組み合わせる事ができませんでした。

    やりたい事は、「件名にキーワードを含むメールを受信した際、キーワード毎に指定されたアプリを実行したい」なのですがoutlookのvbaで可能なのでしょうか?

  42. いつもお世話になります。
    会社でOutlook2013 & Exchangeサーバー環境で使用しています

    受信したメッセージは定期的に個人PCのローカルHDDに移動させています。
    ローカルPCの.pstファイル内の個別のメッセージへリンクを張って
    リンク集(bookmarkでも可)を作成したいです。
    リンク集のファイル形式はexcel, text, accessなどを想定しています。

    pst.ファイル内のメッセージへのリンクはoutlookの操作だけで可能でしょうか。
    もし、マクロorスクリプトの作成が必須でしたらご教示いただけないでしょうか。

    よろしくご教授ください

  43. outlook2010で「分類」を一度にまとめて登録したいのですが、CSVファイルやTXTファイルから登録、また削除するマクロは作れるでしようか?

  44. 会社でOutlook2010 & Exchangeサーバー環境で使用中
    デスクトップサーチサービスは提供されていません。
    このため、クイック検索ボックスでの検索結果は有効ではありません(不正確)。

    受信メールから、特定の添付ファイル名のあるメールを抽出したいのですが、クイック検索ボックスを利用せずに、うまく検索する方法があるでしょうか。

  45. 会社でOutlook2010 & Exchangeサーバー環境で使用中
    https://outlooklab.wordpress.com/2014/05/10/%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E5%86%85%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%92-excel-%E3%83%95%E3%82%A1%E3%82%A4/
    「フォルダー内のすべてのメールの内容を Excel ファイルに書き出し、さらに MSG ファイルとして保存するマクロ」
    を使用して、保存済みフォルダの削除フォルダのアイテムを完全削除前に、Excelでリスト化する目的で使用しようとしています。

    実行したところ、
    For Each objItem In fldCurrent.Items
    のところで、「型が一致しません」のエラーとなり、中断してしまいます。
    何が悪いのか、何処を直せばよいか、ヒントはないでしょうか。

  46. はじめまして。いつもこちらのマクロに助けていただいています。
    「受信メールの宛先やCcをアドレス帳の名前に置き換えるマクロ」の方へ先日コメントしてしまったので、改めてこちらへ再掲させていただきます。

    はじめまして。
    こちらのマクロに大変助けていただいています。

    「連絡先をマクロで活用する」の過去ログなどから、自分の望むようになんとか近づいているのですが、ひとつわからないことがあります。

    実行したいことは、受信したメールと、ルール付けでフォルダ分けした受信メールをアドレス帳の名前に置き換えなのですが、そこでひとつだけ、困っているのがフォルダ分けしたアドレスの反映がされていないことです。

    #マクロのモジュールがあまり理解できておらず、自分なりに色々組み合わせています
    #わかっていないことが悪いので、振り分け時に置き換えがされていなくても手動で良いです

    便宜上、連絡先にカテゴリAのアドレス、他はフォルダを作ってB、C・・・とし、DにはA~Cから選択したアドレスの組み合わせでグループ分けをしています。
    メール作成時に、デフォルトでカテゴリAにB,Cが入っていると大変不便なことが理由です。

    以下のようにしているのですが、これだと連絡先フォルダにあるカテゴリAのアドレスには置き換えがされるのですが、B,Cに入っているアドレスは反映がされません。
    簡単なことかもしれませんが、手助けいただけるととてもうれしいです。

    ※本当に切貼り状態なので、美しいマクロではないかと思います。ご容赦ください。

    ‘ メール受信時に発生するイベント
    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim i As Integer
    Dim c As Integer
    Dim colID As Variant
    If InStr(EntryIDCollection, “,”) = 0 Then
    RewriteSender EntryIDCollection
    Else
    colID = Split(EntryIDCollection, “,”)
    For i = LBound(colID) To UBound(colID)
    RewriteSender colID(i)
    Next
    End If
    End Sub

    ‘ 差出人の名前を置き換えるサブプロシージャ
    Private Sub RewriteSender(ByVal strEntryID As String)
    On Error Resume Next
    Dim objMail ‘As MailItem
    Dim objContact As ContactItem
    Dim strSenderAddress As String

    Set objMail = Application.Session.GetItemFromID(strEntryID)
    If objMail.MessageClass = “IPM.Note” Then
    strSenderAddress = objMail.SenderEmailAddress
    Set objContact = FindContactByAddress(strSenderAddress)
    If Not objContact Is Nothing Then
    objMail.SentOnBehalfOfName = objContact.FullName
    objMail.Save
    End If
    End If
    End Sub

    ‘現在表示中のフォルダーの差出人を書き換えることができます。
    Public Sub 現在表示中のフォルダーの差出人を書き換え()
    On Error Resume Next
    Dim objMail ‘As MailItem

    For Each objMail In Application.ActiveExplorer.CurrentFolder.Items
    RewriteSender objMail.EntryID
    Next
    End Sub

    ‘ PF 連絡先を検索する関数
    Private Function FindContactByAddress(strAddress As String)
    Dim objContacts As Folder
    Dim objContact As ContactItem

    Set objContacts = Application.Session.Folders(“パブリック フォルダ”).Folders(“すべてのパブリック フォルダ”).Folders(“連絡先”)
    ‘ Outlook 2010 は下記を使用、sample@example.com を自分のメールアドレスに置き換える
    ‘Set objContacts = Application.Session.Folders(“パブリック フォルダー – sample@example.com“).Folders(“すべてのパブリック フォルダー”).Folders(“連絡先”)
    Set FindContactByAddress = FindContactRecursive(objContacts, strAddress)
    End Function

    ‘ 連絡先フォルダーを再帰的に検索する関数
    Private Function FindContactRecursive(objContacts As Folder, strAddress As String)
    Dim objSubFolder As Folder
    Set objContact = objContacts.Items.Find(“[Email1Address] = ‘” & strAddress _
    & “‘ or [Email2Address] = ‘” & strAddress _
    & “‘ or [Email3Address] = ‘” & strAddress & “‘”)
    ‘ 見つからなければサブフォルダーを検索
    If objContact Is Nothing Then
    For Each objSubFolder In objContacts.Folders
    ‘ 再帰的に検索
    Set objContact = FindContactRecursive(objSubFolder, strAddress)
    If Not objContact Is Nothing Then
    ‘ 見つかったら検索終了
    Set FindContactRecursive = objContact
    Exit Function
    End If
    Next
    End If
    Set FindContactRecursive = objContact
    End Function

  47. Win10 Outlook2016を利用しています。
    当サイト内の
    受信したメールの添付ファイルを自動保存するマクロ
    を参考にVBAを組みましたが、複数のメールを同時に受信したときにうまく動作しません。

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

    Else以下の分岐が、複数メール受信しているときは動作していないようです。

    何かいい方法はありますでしょうか?
    よろしくお願いいたします。

  48. はじめまして以前掲載してた件名を変えて転送するマクロをしてみようとしてますが旨く行きませんなぜでしょうか
    Option Explicit

    ‘ ここをトリプルクリックでマクロ全体を選択できます。
    Public Sub ForwardWithPrefix(objMail As MailItem)
    Const FORWARD_ADDRESS = “” ‘ 転送先のアドレスを指定します
    Const SUBJECT_PREFIX = “テスト ”
    Dim objForward As MailItem
    Set objForward = objMail.Forward
    With objForward
    .To = FORWARD_ADDRESS
    .Subject = SUBJECT_PREFIX & objMail.Subject
    .Send
    End With
    End Sub
    アウトルックは2010ですよろしくお願い致します

  49. はじめました。こんなに情報量豊富なサイトがあるのを知り感動いたしました。さっそく
    ご相談させていただきたく。

    Outlook2013において、所定フォルダにあるメールメッセージをSaveAsメソッドでmsg形式
    で保存するVBAを作成、試しているのですが、比較的大きなサイズのmsgファイルが添付
    されたメールメッセージをmsg形式で保存しようとすると、
    「処理を実行するためのメモリが不足しています」
    というエラーをはいてプログラムが途中終了してしまいます。
    エラー発生までは、msg形式のファイルが出来ているのですが16kBのままサイ
    ズが増えず、エラー発生とともにそのファイルが自動消去されます。

    【試行結果】
    ・(msg形式の場合、)Unicodeの如何を問わず不動作
    ・ファイル~名前を付けて保存 でも不動作
    ・不動作となるメールメッセージについて、txt形式であれば保存可能
    ・msgでない他のファイル形式で大きなサイズが添付されている場合、msg形式で保存可能

    【ご相談事項】
    ・最終的には、当該ケースでもちゃんと保存できるようにしたい
    ・複数メールメッセージを対象とした場合、あるメッセージが上述の事象により保存
     不能でも、そこで途中終了せず、メッセージ個数の分すべてトライ(次のメッセージ
     の保存トライが継続)されるように、せめてしたい

    【その他】
    大きなファイルでなくたくさんの宛先がセットされているmsgの場合に同様の事象が
    発生という説もあるようですが・・・自分にはこれ以上解明できませんでした。
    https://www.experts-exchange.com/questions/28536821/Outlook-vba-cannot-save-a-large-Msg-file-to-disk-error-2147024882-There-is-not-enough-free-memory.html

    https://social.msdn.microsoft.com/Forums/office/en-US/2836370d-33dd-44fe-b480-26edcf1f6859/does-the-saveas-method-in-microsoftofficeoutlookinterop-have-a-maximum-file-size?forum=outlookdev

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

  50. はじめまして。これほど情報量満載のサイトがある
    のを知り感動いたしました。早速質問させて戴きたく。

    Outlook2013上で所定フォルダ上のメールメッセージを
    SaveAsメソッドによりディスクにmsg形式で保存する
    VBAを作成していますが、メールメッセージがmsg形式
    の添付ファイルを持つ場合に保存が失敗し、そこで
    メモリエラーでプログラムが途中終了してしまいます。
    保存の際、ディスク上に16kBのmsgファイルが出来る
    のですがサイズがそこから増えることなく、エラー
    「処理を実行するためのメモリが不足しています」が
    出て、途中終了するとともに、上記ファイルが自動
    削除されます。

    【試行実験】
    ・msg形式での保存では、Unicodeの如何を問わず保存不能
    ・マニュアルで「ファイル~名前をつけて保存(msg形式)」
     でも保存不能
    ・保存不能のケースで、TXT形式での保存は可能
    ・添付のmsgファイルが壊れていることはおそらくなく、
     ダブルクリックで開いてみることが可能。但しそれを
     保存することも同じエラーで不能。
    ・メールメッセージをexplorer上のD&Dしてmsg形式で
     保存することは可能

    【相談事項】
    所定フォルダ上の複数のメールメッセージを1つずつ
    msg形式でプログラムで保存したいので、
    ・最終的には、対象とするメールメッセージを全て保存したい
    ・不能なメッセージがあってもそこで途中終了せず、次の対象
     の保存に取りかかれるようにせめてしたい

    【参考】
    添付ファイルのmsgが大きなサイズの場合に失敗するようですが、
    以下には必ずしもそうでは無く沢山の相手先が設定されていると
    失敗するとの話もあるそうです。もはや私には理解が及びません。
    https://social.msdn.microsoft.com/Forums/office/en-US/2836370d-33dd-44fe-b480-26edcf1f6859/does-the-saveas-method-in-microsoftofficeoutlookinterop-have-a-maximum-file-size?forum=outlookdev

    https://www.experts-exchange.com/questions/28536821/Outlook-vba-cannot-save-a-large-Msg-file-to-disk-error-2147024882-There-is-not-enough-free-memory.html

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

  51. outlook2013(office365proplus)です。
    ここでいろいろ参考にさせていただいて、予定表をテキストで取り出すvbsを
    使っております。
    数か月は問題なく使っていたのですが、最近、下記セキュリティのアラートが出るようになりました。
    「Outlook内に保存されている電子メールアドレス情報がプログラムによってアクセスされようとしています。なんたら」

    数分ごとに実行するようにスケジューリングしているので、事実上アラートが邪魔で使えない状況です。。

    いろいろ調べたのですが、「セキュリティセンターの設定でプログラムによるアクセス」を「不審な動作に関する警告を表示しない」にする、というのしか見つかりません。(私は管理者ではないので、この項目を変更できません)

    特定のプログラムを許可するようなオプションも見つかりません。

    何か対策は無いでしょうか。
    最近突然使えなくなったのは何かマイクロソフトで仕様変更したのでしょうか。。

  52. kkium

    はじめまして
    環境:windows10
    Outlook2013
    Excel 2013
    受信したメールを件名別に検索しExcelに本文を保存しようと思っています。
    いろいろ参考マクロをコピーしては試したのですがうまくいきません。
    初歩的な質問で申し訳ございません。

  53. 前回はサンプルをご教授いただきありがとうございました。
    今回は「受信したメールの添付ファイルを印刷し、メールを移動するマクロ」をベースとした質問です。
    ワードやエクセルファイルは印刷ダイアログの表示無しに通常使用しているプリンタで自動印刷が可能なのですが、TIFFファイルの場合は印刷ダイアログが表示されてしまいます。
    印刷ダイアログを表示させずに印刷する方法はあるのでしょうか?
    お手数をおかけしますが、よろしくお願いします。

    • 印刷処理自体はファイルを開くアプリケーションが行っているため、印刷ダイアログを表示するかどうかはそのアプリケーションに依存し、マクロで制御することはできません。
      TIFF ファイルを印刷する際にダイアログを出さないようなアプリケーションをインストールして TIFF ファイルに関連付ければ回避できると思いますが、ちょっと私のほうではそのようなアプリケーションがあるかどうかは把握しておりません。

      • お返事、ありがとうございます。
        マクロでは制御できない事が分かりましたので、違う方向から検討してみます。

  54. ZZZ

    環境:
    Outlook2013
    Excel 2013

    はじめまして。
    Excelの表をOutlookのメールに貼り付けたく、下のコードを作成しましたが、
    ”.Wordeditor.Windows(1).Selection.Paste”のところでエラー287が出てマクロが止まってしまいます。
    いろいろ試してみましたが、”Wordeditor”を含むところでエラーが出ます。
    理由と解決策をご教示いただけますでしょうか。
    どうぞよろしくお願いいたします。

    Dim oApp As Object
    Dim objMAIL As Object
    Dim strMOJI(1) As String
    Dim n As Long

    On Error Resume Next
    Set oApp = GetObject(, “Outlook.Application”)
    On Error GoTo 0
    If oApp Is Nothing Then
    Set oApp = CreateObject(“Outlook.Application”)
    oApp.GetNamespace(“MAPI”).GetDefaultFolder(6).display
    End If

    Set objMAIL = oApp.CreateItem(0)
    strMOJI(0) = Replace(Range(“I20”).Value, vbLf, vbCrLf)
    objMAIL.To = Range(“I8”).Value ‘ 宛先
    objMAIL.Cc = Range(“I10”).Value ‘ CC
    objMAIL.Bcc = Range(“I11”).Value ‘ BCC
    objMAIL.Subject = Range(“I12”).Value ‘ 件名
    objMAIL.Body = strMOJI(0) ‘ 本文
    objMAIL.display

    Range(“B4:D15”).Copy
    With oApp.ActiveInspector
    .Wordeditor.Windows(1).Selection.Paste
    End With

    Set objMAIL = Nothing
    Set oApp = Nothing

    End Sub

  55. はじめまして。
    マクロを使用して、現在登録されている会議室名をすべて取得したいと考えています。
    どのような関数を利用して、実現するのがよいのかお知恵を拝借できれば幸いです。

    outlook VBAは情報が少なく、困り果てています。
    どうぞよろしくお願いします。

  56. いつもお世話になっております。
    こちらのサイトをよく参考にさせていただいております。
    この度、検索フォルダーの再検索を定時処理で実行したくご教示頂ければと思い、
    コメントさせて頂きます。

    ver:Outlook2013
    OS:Windows7 Pro SP1

    検索フォルダーで「過去7日以内」の検索フォルダーを利用していますが、
    日を跨ぐと再検索が必要になる為、読み込み中となりメールの量も多い為、
    数分~10数分かかることもあります。
    その間、端末自体がそれなりに重くなる為、明け方などに定時処理で再検索を
    しておき、朝にはすんなりと開けるようにしたいと考えております。

    タスクのアラームを利用して定時処理をする事は出来ましたが、
    .ActiveExplorer.CurrentFolderでも、.Display(新しいウィンドウで開く)でも、
    再検索はされず、結局フォルダーツリーをマウスでクリックする等して該当の
    検索フォルダーを開くと読み込み中になる状態です。

    あとは思いつく方法として一つ上のフォルダからSendkeyで一つ下のフォルダを
    選択するとかくらいですが、Sendkeyはなにぶん動作不安定なので他に希望の
    動作を実現する方法があればご教示下さい。

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

    ※会社から同様のコメントをしたのですがうまく送信されていないようなので、
     再度、コメントさせて頂きます。
     二重投稿になってしまったら申し訳ございません。

  57. Outlookの予定表で「新しい予定表グループ」で新しい予定表グループを作成して、そのグループの中に「予定表の追加」で共有するユーザーを追加するVBAを作成したいのです。

    新しい予定表グループを作成するのは下記でできたのですが、
    ActiveExplorer.NavigationPane.Modules.GetNavigationModule(olModuleCalendar).NavigationGroups.Create(グループ名)

    共有するユーザーの追加が出来ずに困っております。
    「NavigationFolders.Add (ユーザー名)」では「型が一致しません」とのエラーが出ます。

    突然で申し訳ございませんが御教授頂けます様よろしくお願いいたします。

  58. お世話になります。OUTLOOKの予定表の本文中の書式設定(フォント、色、サイズ)を変更したいのですが、
    どのようにしたらできるでしょうか?ご教示ください。
    現状、objITEM.Body= ” xxxxxxxx ” にて本文を設定しています。

    メールの場合には .HTMLBody= “” & “” などで、変更できたのですが。

    お手数ですがよろしくお願いいたします。

  59. はじめまして

    本文にIPアドレスを含むメールが飛んでくるのでそのメールが着たらpingを自動で投げるようにしたいのですが、できますでしょうか?

    [環境]
    os:win7 pro
    outlook 2010

    メール
    件名:障害発生
    本文「
    IPアドレス:○○.○○.○○.○○
    障害時間:yyyy:mm:dd hh:mm
    障害ログ:~~~~~

  60. いつもお世話になっております。
    特定のフォルダに入っているメールを転送用のとして下書きメールの作成(未送信の段階)まで行いたいVBAを考えております。
    初心者過ぎて全く分からないのですが、作成して頂けないでしょうか。

  61. EXCELのVBAで生成したOUTLOOKの予定表の本文(Body)の一部をEXCEL VBAで太字にしたいです。どのように記述すればよいか、ご教授願えませんでしょうか?ついでに一部の文字を赤にする場合も、ご教授いただけると助かります。よろしくお願い致します。

  62. Outlook VBAをいろいろ調べている中で本サイトを知りました。すばらしい!今まで知らなかったのが悔やまれます。

    早速質問させていただきたいのですが、Outlookで受信したファイル名の一覧を送信者のメールアドレスとセットで取得する良い方法がありませんでしょうか?
    (究極的には添付ファイルを送信者名に変えて保存するVBAが希望なのですが、送信者名と添付ファイルがセットで一覧化できれば私のスキルでもExcel VBA等を使ってファイル名の変更が出来ます。)
    御サイトとGoogle検索は行ったのですが、私のやりたいことが出来る記述がありませんでした。
    アドバイス頂けますと幸甚です。

  63. いつもブログ拝見させていただいています。

    私は、ある会社で新人研修のスタッフを行っております。
    新入社員は一日の終わりに日報をメールで作成して送るのが義務に
    なっています。

    そこで新入社員が送信したメールデータをExcelファイルにエクスポートする
    マクロはございますでしょうか。
    (新入社員が日報を送ったかチェックするためです。)

    ■メール抽出条件
    ・件名が”【日報】”となっているもの
    ・日付を指定して抽出する
    ・受信フォルダを複数指定して抽出

    ■Excelに抽出する際に必要情報な情報
    ・件名
    ・差出人(CC情報も含む)
    ・宛先

    利用環境はOutlook2016です。

    ご教授頂きたく、宜しくお願い致します。

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

    下書きメールの名前解決を、マクロでまとめて行いたいと試行錯誤しています。

    .Recipient.Resolve で解決できなかった送信先について、リボンの「名前の確認」で出てくる「”●●”が複数見つかりました。」のダイアログを表示し、利用者に選択させたいですのですが、これを直接表示させて値を取得することは出来るのでしょうか?

    .GetSelectNamesDialog を試してみたのですが、「名前の選択」でアドレス帳が表示され、未解決でOKを押した後に目的の画面になるため、この手間をどうにか省けないかと思った次第です。

    利用環境はWindows 7/Outlook 2013です。
    ご教示のほど、どうぞ宜しくお願いいたします。

  65. 助けてほしいです。
    Outlookで以下ルールを追加しているのですが、
    時々クライアントエラーになります。
    エラーになった仕訳ルールを削除し、新たに同じルールを作成すると
    問題なく動くのですが、何日か経つとまたクライアントエラーになってます。
    =====仕訳ルール内容=====
    この仕訳ルールは次のタイミングで適用されます:メッセージを受信し時
    [差出人]が”特定のユーザー”の場合
      さらにこのコンピューターで送受信した場合のみ
    Project1.testを実行する。
    =================
    Project1.testは件名や本文の一部を引数としてjarを実行するマクロです。

    Outlookのバージョンは2010です。
    Outlook 2016がインストールされてるPCでは同じ仕訳ルール(差出人だけ違います)でも
    一度も本事象は起こっていないのでもしかしたらOutlookのバージョンが
    関係しているのかなと推測しています。
    原因と解決策をご回答いただけましたら幸いです。

  66. こんにちは。

    実は初めましてではありません。以前も助けていただいたことがあります。
    そのときは、ありがとうございました。

    私、とある任務を持っています。それは、会社の代表メールに着信したメールを振り分けるという、それなりに大事なこと。

    しかしOutlook(2013/2016)で普通に転送をすると、「送信者」は当然”私”となります。よって、転送メールを受け取った人は、それほど深く考えずメールに対し返信をすることで、すべて私に戻ってくるわけです。

    これの解決策として、世の中には「リダイレクト」という仕組みが用意されています。Outlookでも「仕分けルール」を使うことで(自動的に)行えるようですが、自動的ではダメなのです。

    受信したメールを確認し、”このメールは人事課”,”このメールは総務課”とひとつひとつ大事に転送を掛けていきたいのですが、Outlook(手動)でなんとか出来るようになりませんか?

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

    風のピエロ

  67. 「受信したメッセージの差出人表記を、自身で登録したアドレス帳の表示名で表示する方法」

    はじめまして。コメント失礼致します。
    outlookを利用してから、受信したメッセージの差出人名が、相手が登録しているユーザ名やメールアドレスで表示されてしまうため、分かりにくく困っております。

    過去の投稿
    「受信メールの宛先やCcをアドレス帳の名前に置き換えるマクロ」(2016年7月30日)
    https://outlooklab.wordpress.com/2016/07/30/%e5%8f%97%e4%bf%a1%e3%83%a1%e3%83%bc%e3%83%ab%e3%81%ae%e5%ae%9b%e5%85%88%e3%82%84cc%e3%82%92%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9%e5%b8%b3%e3%81%ae%e5%90%8d%e5%89%8d%e3%81%ab%e7%bd%ae%e3%81%8d%e6%8f%9b/

    を参考に、受信したメッセージの宛先表記はアドレス帳に登録した表示名で表示することが可能になりました。

    差出人名も同様に、アドレス帳への登録名称に変換するマクロをご教授いただけますと幸いでございます。

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

  68. お世話になります。
    「出席者から辞退の返信が来た際にキャンセル通知を送信して会議を削除するマクロ」にて質問者の方とほぼ同じ用途で会議室予約のマクロを作成しており、辞退になったアイテムの自動キャンセル送信に、上記マクロを使用させていただいております。

    しかし、以下の条件で実行時エラーが発生します。

    ■条件1
     一つの予約アイテムに複数の会議室を指定した同一条件のアイテムを多数同時送信した場合
     ※必ず再現する
    【エラー発生個所】
     apptItem.MeetingStatus = olMeetingCanceled
     このとき、「apptItem」の値は「Nothing」になっています。
    【エラー内容】
     実行時エラー ’91’
     オブジェクト変数またはWithブロック変数が設定されていません。

    ■条件2
     一つの予約アイテムに一つの会議室を指定した同一条件のアイテムを多数同時送信した場合
     ※再現性は低い
    【エラー発生個所】
     Set objItem = Session.GetItemFromID(EntryIDCollection)
    【エラー内容】
     実行時エラー ‘-2147352567(80020009)’:
     アイテムを開けませんでした。もう一度試してみてください。

    エラー番号など調べてみましたが、解決には至っておりません。
    初心者で申し訳ありませんが、よろしくお願いいたします。

  69. 普段より拝見させていただき勉強させていただいております。
    Outlookの会議室予約を項目別にExcelシートに設定し、メール送信をしたら
    素人考えで恐縮ですが、予約が受付できるのではないかと思いましたがうまくできませんでした。
    十分な知識がなく、もし助言等いただければ幸いです。
    よろしくお願い致します。

    Exchange2007
    Excel2013

    A列1行目から順に次の項目名を順に設定しました。

    ・件名/開始日/開始時刻/終了日/終了時刻/終日イベント/アラーム オン/オフ/アラーム日付/アラーム時刻/
    会議の開催者/必須出席者/任意出席者/リソース/場所/内容/秘密度/分類/優先度
    ・会議の主催者や任意出席者は、メールアドレスをカンマ区切りで入力しました。
    ・会議室の名称はOutlookグローバルメールアドレス一覧から取得し、設定しました。

  70. (こんなマクロがあったらいいな)
    コメント失礼します。
    Windows10でoutlook2016を使用しております。
    游ゴシックを使用したHTMLメールが大変読みにくく(Outlook2016のデフォルトでしょうか…)
    画面の調整では限度あり、かすれたような読みにくさは、
    PCの環境によっては、回避できない場合もあります。

    Outlookの設定では、HTMLメールをテキスト形式として受信する設定があり、
    かつ、テキストメールの設定を所望のフォントにしておけば、
    見やすさは確保できるのですが、
    余計な改行が入る、表などの書式もなくなってしまうことから
    この機能に頼ることはできません。

    そもそも、
    HTMLメールに游ゴシックを使わない、(好きな方ゴメンナサイ。)
    HTMLメールで改行するときは、SHIFT+ENTERで!
    と送信時に、ひと手間かけていただければ解決するのですが、
    それはそれで、難しい話です。

    ご提案なのですが、
    HTMLメール受信時に、特定のフォント(游ゴシック)を、
    特定のフォント(MeiryoUIやMSゴシック)に置換し
    表示するマクロがあると、救われる方々が大勢いらっしゃると思います。
    是非、ご一考いただければ幸いです。

  71. いつもお大変世話になっております。

    下記の運用を考えておりますが、マクロで対応することは可能でしょうか。
    ご検討いただければ幸いです。

    ■ やりたいこと
    受信トレイに保存されているメールアイテムのうち下記の要件に合致
    しているメールのみを特定のフォルダへ移動させたい
    <要件>
     ・ 受信後、14日が経過している
     ・ 件名に特定の文字列が入っている

    ■ 利用環境
    OSバージョン:Windows7 SP1 & Windows10 RD2
    Outlookバージョン:Outlook2016
    サーバ:Exchange Online

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

    • ↑のご依頼させていただいておりますマクロですが、
      Application_Startup プロシージャなどを利用して
      Outlook起動時にできないかと考えております。

      お手数ですがご検討のほどよろしくお願いいたします。

  72. いつも勉強させていただいてます。
    ありがとうございます。

    新規メールの作成時、メールの返信時において、
    署名をメールの宛先のドメインに合わせて変更することは可能でしょうか。
    ぜひご教示いただければ幸いです。
    よろしくお願いいたします。

    操作環境
    Windows 7
    Outlook 2013

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中