思い出したような投稿で失礼します。
先の投稿で、OutLookの添付ファイルは手動で保存
と書いたので、その部分を自動化したいと思います。
但し、このVBAは、かなり高度なテクニックです。
エクセルVBAでOutLookを制御する ウルトラCクラスです。
メーラーにOutLookを使用している方、限定です。
又もや数回に分けて説明します。
今日は、お酒も飲んでしまったので、さわりだけです。
新しいエクセルブックを作成します。
シート上にボタンを配置、VBAエディターを起動
Sub ボタン1_Click()
Dim objOApp As Object
Dim objOApp As Object
Set objOApp = CreateObject("Outlook.Application")
Dim objNameSpace As Object
Dim objNameSpace As Object
Set objNameSpace = objOApp.GetNamespace("MAPI")
Dim objDFld As Object
Dim objFld As Object
Dim objItem As Object
SUBFOLDER = "受信トレイ"
Dim objDFld As Object
Dim objFld As Object
Dim objItem As Object
SUBFOLDER = "受信トレイ"
For Each objDFld In objNameSpace.Folders
If objDFld.Name <> "" Then
Exit For
End If
Next
If objDFld.Name <> "" Then
Exit For
End If
Next
For Each objFld In objDFld.Folders
If objFld.Name = SUBFOLDER Then
Exit For
End If
Next
If objFld.Name = SUBFOLDER Then
Exit For
End If
Next
i = 5
For Each objItem In objFld.Items
If objItem Is Nothing Then Exit For
Range("A" & i).Value = objItem.ReceivedTime
Range("B" & i).Value = objItem.SenderName
Range("C" & i).Value = objItem.Subject
Range("D" & i).Value = objItem.Body
i = i + 1
Next
For Each objItem In objFld.Items
If objItem Is Nothing Then Exit For
Range("A" & i).Value = objItem.ReceivedTime
Range("B" & i).Value = objItem.SenderName
Range("C" & i).Value = objItem.Subject
Range("D" & i).Value = objItem.Body
i = i + 1
Next
End Sub
を張り付けて保存
ボタンをクリックして、OutLookの受信フォルダの
日付、送信元、件名、本文がA~D列に一覧に表示されたら成功です。
古くからOutLookを使っている方は、かなり時間がかかると思います。
適当なところで ESC を押して中断してください。
5行目以下は削除していただいても結構ですが、今後も使用しますので
適当にフォルダを作成して、名前も自由ですので、保存しておいてください。
この30行足らずのコードを説明するのに、何度も投稿すると思います。
OutLookの設定などでエラーが出る方もいるかもしれませんが
読み飛ばしていただいても結構です。
飲んだら 書くな、書くなら飲むな ブログのルールですが、飲んでしまった後です。
取りあえずは、ここまでにします。
上記のコードの内容を順次説明します。