

Outlookの「受信日時」「件名」「本文」などをVBAを使ってExcelに転記したいのですが、下記のコードですと、古い受信日時から1件しか取得できません。
出来れば、「受信トレイ」や「移動」「下書」きなどの取得したいフォルダーを選択し、新しい日付けから、「受信日時」「件名」「本文」を一括で
Excelに転記できるVBAコードに設定にして頂けると助かります。
よろしくお願いいたします。
VBAコードURL
https://writening.net/page?NWK5ZZ
No.2ベストアンサー
- 回答日時:
以下は、Outlookから受信トレイ、移動、下書きなどのフォルダから新しい日付順に受信日時、件名、本文を一括でExcelに転記するVBAコードの例です。
このコードは、Outlookの既定のメールボックスからフォルダを選択し、そのフォルダ内のすべてのメールを取得します。vba
Copy code
Sub ExportEmailsToExcel()
Dim OutlookApp As Object
Dim OutlookNamespace As Object
Dim Folder As Object
Dim Item As Object
Dim xlApp As Object
Dim xlWB As Object
Dim xlWS As Object
Dim RowIndex As Integer
' Outlookアプリケーションを作成
Set OutlookApp = CreateObject("Outlook.Application")
' Outlookの名前空間を取得
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
' Excelアプリケーションを作成
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True ' Excelを表示
' 新しいExcelブックを作成
Set xlWB = xlApp.Workbooks.Add
' Excelワークシートを取得
Set xlWS = xlWB.Sheets(1)
' Excelワークシートにヘッダーを書き込む
xlWS.Cells(1, 1).Value = "受信日時"
xlWS.Cells(1, 2).Value = "件名"
xlWS.Cells(1, 3).Value = "本文"
RowIndex = 2 ' データの書き込み開始行
' フォルダを選択
Set Folder = OutlookNamespace.PickFolder
If Not Folder Is Nothing Then
' フォルダ内のすべてのメールを処理
For Each Item In Folder.Items
' メールのタイプがメールである場合のみ処理
If TypeOf Item Is Outlook.MailItem Then
' Excelにデータを書き込む
xlWS.Cells(RowIndex, 1).Value = Item.ReceivedTime
xlWS.Cells(RowIndex, 2).Value = Item.Subject
xlWS.Cells(RowIndex, 3).Value = Item.Body
RowIndex = RowIndex + 1
End If
Next Item
End If
' メモリを解放
Set OutlookApp = Nothing
Set OutlookNamespace = Nothing
Set Folder = Nothing
Set Item = Nothing
Set xlApp = Nothing
Set xlWB = Nothing
Set xlWS = Nothing
End Sub
このコードを実行すると、Outlookのフォルダを選択するダイアログが表示されます。選択したフォルダ内のすべてのメールがExcelに転記されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAを使ってOutlookメール本文からキーワードのみを抽出してExcelにリストさせるには
その他(プログラミング・Web制作)
-
Outlookの「受信日時」「送信者アドレス」「件名」「本文」の内容をExcelへの取り込み
Visual Basic(VBA)
-
Outlookで送受信日時もExcelにエクスポートするには
Gmail
-
-
4
OUTLOOKのメールアカウントの受信フォルダーへVBAでアクセスするには。
Visual Basic(VBA)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
受信したメールの内容を自動的にExcelに反映できますか?
Excel(エクセル)
-
7
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
8
Outlookにて既にウィドウ単体で開いているメールの本文をVBAにて取得する方法
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
Excel VBA:特定の文字列以降(あるいは以前)のテキストをすべて取得する方法
Visual Basic(VBA)
-
11
Outlookで添付ファイルの有無を調べたい
Visual Basic(VBA)
-
12
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
13
VBAでのユーザフォームの表示有無の確認について
Visual Basic(VBA)
-
14
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA セルの値がおかしいです
-
VBA セル間のリンク修正につい...
-
VBAでCOPYを繰り返すと、処理が...
-
VBAから書き込んだ条件付き初期...
-
WindowsのOutlook を VBA から...
-
マクロの記録を使用したマクロ...
-
vbsでのwebフォームへの入力制限?
-
ダブルクリックで貼り付けた画...
-
エクエルのVBAコードについて教...
-
ExcelのVBAコードについて教え...
-
vbs ブック共有を解除
-
VBAでFOR NEXT分を Application...
-
Excelのマクロについて教えてく...
-
Vba WorkBooks.Openについて教...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
[Excel VBA]特定の条件で文字を...
-
【VBA】値を変更しながら連続で...
-
vba textboxへの入力について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP のパケットの分断と結合...
-
Outlookの「受信日時」「件名」...
-
Outlookの「受信日時」「送信者...
-
UDP受信時の通信異常検知について
-
recv関数の戻り値について
-
ネットワークでの受信バイト数
-
CRC-CCITTに関しての仕様とサン...
-
Excxel vba でYahoo API で住所...
-
TCPのプログラミングで質問…と...
-
VBのMSCommコントロールを使っ...
-
スレッドの一時停止と再開について
-
パケット受信 recvfrom( )につ...
-
RS232cを用いた送信プログラム
-
PC98で232c送信winndowで受信で...
-
Perl / IO::Socketによる送受信...
-
DHCPOFFERの受信について
-
VB2010で、シリアル通信の方法...
-
Readメソッドが次の行に処理を...
-
シリアル通信時のデータ受信方法
-
VC++ 2010 メッセージが文字化...
おすすめ情報