ExcelVBAでOutlookのパブリックフォルダの投稿を一括ダウンロード

スポンサーリンク

Outlookのメール操作だけでなく、パブリックフォルダに対してもExcelVBAで操作できる

ExcelVBAを使ってメール操作だけではなく、パブリックフォルダの中にある特定のフォルダから添付ファイルや投稿内容を一気に抜き出してダウンロードすることもできます。

今回はOutlookのパブリックフォルダの投稿から添付ファイルと件名、本文を抜き出してダウンロードするVBAコードを紹介します。

Outlookを操作するExcelVBAのサンプルコード

Sub パブリックフォルダの投稿からダウンロードする()
Dim App As Object
Set App = CreateObject(“Outlook.Application”)
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
Dim WSH As Variant
Set WSH = CreateObject(“Wscript.Shell”)
Dim DesktopPath As String
DesktopPath = WSH.SpecialFolders(“Desktop”)
Dim myNameSpace
Dim oFolder
Dim cITEM
Dim n As Integer, j As Integer’ループのカウンター
Dim strFileName As String
Dim attm As Integer
If FSO.FolderExists(DesktopPath & “b”) = False Then’デスクトップにbというフォルダが存在しなければ
FSO.CreateFolder DesktopPath & “b”’デスクトップにbというフォルダを作成する
End If
Set myNameSpace = App.GetNamespace(“MAPI”)
Set oFolder = myNameSpace.Session.Folders(“パブリック フォルダ”).Folders(“すべてのパブリック フォルダ”).Folders(“共有”)
’さらに下層のフォルダから投稿をダウンロードする場合は.Folders(“「フォルダ名」”)を付け加える
oFolder.Display
For n = 1 To oFolder.Items.Count
Set cITEM = oFolder.Items(n)
attm = oFolder.Items(n).Attachments.Count
Cells(n + 1, 1) = oFolder.Items(n).Subject’A列に件名を記載する
Cells(n + 1, 2) = oFolder.Items(n).ReceivedTime’B列に投稿時間を記載する
Cells(n + 1, 3) = oFolder.Items(n).Body’C列に本文を記載する
For j = 1 To attm
oFolder.Items(n).Attachments(j).SaveAsFile (DesktopPath & “b” & Format(n, “000”) & “_” & Format(j, “00”) & “_” & oFolder.Items(n).Attachments(j).DisplayName)
Cells(n + 1, 3 + j) = oFolder.Items(n).Attachments(j).DisplayName
’添付ファイルのファイル名の先頭に何番目の投稿ファイルの何番目の添付ファイルかを記載してデスクトップの「b」というフォルダにダウンロードする
Next j
Next
Set cITEM = Nothing
Set oFolder = Nothing
Set FSO = Nothing
End Sub

bという一つのフォルダに入ったファイルに対して同じ操作をする場合はフォルダに入っているファイルを一括で処理をするを参考にしてください。

追記:Office2013へのアップグレードでこのサンプルコードが動作しなくなりました。新しいコードはこちらに記していますので、ご参照ください。

コメント