outlook如果要開啟pst檔,有點麻煩,因為一次只能開啟一個,但偏偏有的user有超多pst檔,所以在換電腦的時後非常麻煩。
網路上有人有分享用powershell去一次把所有pst做掛載,是可行的,但偏偏就是遇到有一台電腦執行時會失敗,所以就想找找有沒有其他方式。
沒想到還真的有,就是用vba去執行,方法如下:
在outlook的畫面中,按下"alt + f11",然後就會開啟一個vba的編輯畫面,然後將下列的程式碼碼上,記得在第二個的地方,要把路徑改成你的pst檔案的資料夾路徑,然後執行,就成功了。
Sub BatchOpenMultiplePSTFiles()
Call LoopFolders("E:\")
MsgBox "Open Successfully!", vbExclamation + vbOKOnly, "Open Outlook Data File"
End Sub
Sub LoopFolders(strPath As String)
Dim objFileSystem As Object
Dim objFolder As Object
Dim objFile As Object
Dim objPSTFile As Object
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFileSystem.GetFolder(strPath)
For Each objFile In objFolder.Files
strFileExtension = objFileSystem.GetExtensionName(objFile)
If LCase(strFileExtension) = "pst" Then
Set objPSTFile = objFile
Outlook.Application.Session.AddStore (objPSTFile.Path)
End If
Next
If objFolder.SubFolders.Count > 0 Then
For Each objSubFolder In objFolder.SubFolders
If ((objSubFolder.Attributes And 2) = 0) And ((objSubFolder.Attributes And 4) = 0) Then
LoopFolders (objSubFolder.Path)
End If
Next
End If
End Sub