質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

1064閲覧

【VBA】Outlookの指定フォルダの昨日のメールを.txtで名前を付け保存したい

masuken

総合スコア5

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2021/09/13 14:25

解決したいこと

Outlookで指定フォルダ内の昨日のメールを.txtで名前付けて保存するVBAを組みたいのですが、うまくメールアイテムを保存できません。
保存イメージとしては画像の通りで、手作業の場合だと『フォルダ内のメールを選択』⇒『ファイルタブをクリック』⇒ 『名前を付けて保存』と押した際にできるテキストファイルの見た目になります。
イメージ説明
お忙しいところ恐縮ですが、方法をご教授いただけますと幸いです。

発生している問題・エラー

上記の保存イメージの通りに情報が取得できない。

該当するソースコード

VBA

1Option Explicit 2 3Sub 昨日のOutlook情報をテキストドキュメントにして保存() 4 5 Dim dtStart As Date 6 Dim dtEnd As Date 7 Dim strStart As String 8 Dim strEnd As String 9 Dim strFilter As String 10 Dim objOL As Object 11 Dim objNAMESPC As Object 12 Dim myfolders As Object 13 Dim colItems As Items 14 Dim fldCurrent As Folder 15 Dim objItem As MailItem 16 17 ' エクスポート範囲を指定 18 dtStart = Date - 1 19 dtEnd = Date - 1 20 strStart = FormatDateTime(dtStart, vbShortDate) 21 strEnd = FormatDateTime(dtEnd, vbShortDate) 22 strFilter = "[受信日時] >= '" & strStart & _ 23 "' AND [受信日時] <= '" & strEnd & " 23:59'" 24 25 '保存したいメールフォルダを取得 26 Set objOL = CreateObject("Outlook.Application") 27 Set objNAMESPC = objOL.GetNamespace("MAPI") 28 Set myfolders = objNAMESPC.Folders("aaaaaa@gmail.com").Folders("テスト") 29 30 'メールフォルダをフィルタリング 31 Set colItems = myfolders.Items.Restrict(strFilter) 32 33End Sub 34

自分で試したこと

メールフォルダーのフィルタリングと指定フォルダの取得はできたのですが、ここからテキストドキュメントへ画像のような形で保存する方法が分かりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masuken

2021/09/15 07:27

失礼いたしました。 ありがとうございます。
guest

回答1

0

ベストアンサー

対象おメールアイテムまで取得できているのであれば、あとはテキストファイルに出力するだけかと。
以下を参考にしてみてください。

・受信メールの件名などを取得する方法
https://qiita.com/t-yama-3/items/37545fa9a00c140fb657

・テキストファイルを作成して書き込む方法
https://tonari-it.com/excel-vba-fso-create-text-file/

投稿2021/09/14 00:33

hex309

総合スコア761

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masuken

2021/09/14 13:03 編集

ありがとうございます! 2つ目のサイトにあるcreatetextfileメソッドをcolItemsにつければいいのでしょうか? colItems.createtextfile (ファイルパス)をしたところ、メソッドをサポートしていないとエラーが出てしまいます…。 初心者で申し訳ございません。 テキストファイルへの出力はどうやるのでしょうか?
masuken

2021/09/14 13:06

ちなみに、いただいた方法でテキストファイルを作ると、『差出人:』や『送信日時:』という言葉も出力されますか?
hex309

2021/09/14 22:02

別途質問を立てられているのでテキストファイルは出力できたということでよろしいですかね。 できれば、その旨お知らせいただけると、私も助かります。
masuken

2021/09/15 07:29

失礼いたしました。 teratailを始めたのが最近なものでご迷惑をおかけしております。 本件は解決しました。 ご協力誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問