要約: 受信ボックスのsubfolders
は、どのように呼び出されるのかわからずに電話する方法を教えてください。それらを.pstにエクスポートするというコンテキストでも可能ですか?受信ボックスのサブフォルダをpstにループでエクスポート
フル説明:
私はOutlook Exchange 2010環境で作業しています。
約30人のユーザーの電子メールを.pstファイルにエクスポートしようとしています。彼らはサーバー上の無制限のストレージから1.5 GBになります。これは、ユーザーがポリシーや法律上の理由により保管しなければならないファイルを持っているため、特に不幸です。私はそれらのサイズを減らすための措置をとったが、これらの受信箱のいくつかは非常に大きいです。研究を通じて
私は、単一の.pstにメールアカウントに関連付けられているすべてのアイテムをエクスポートし、私はそのアカウント内subfolder
特定のターゲットにそのコードを変更したコードの一部を発見しました。
次に、受信トレイの下に一連のsubfolders
をターゲティングすることができます。私は何とかそれらの名前を指定せずにループすることができますか?この文脈ではうまくいくのでしょうか?注:userform
があり、エクスポートするアカウントを選択できます。
コード:
Option Explicit
Sub BackUpEmailInPST()
Dim olNS As Outlook.NameSpace
Dim olBackup As Outlook.Folder
Dim bFound As Boolean
Dim strPath As String
Dim strDisplayName As String
strDisplayName = "Backup " & Format(Date, "yyyymmdd")
strPath = "C:\Users\TaylorMat\Documents\Attachments\" & strDisplayName & ".pst"
Set olNS = GetNamespace("MAPI")
olNS.AddStore strPath
Set olBackup = olNS.Folders.GetLast
olBackup.Name = strDisplayName
RunBackup olNS, olBackup
olNS.RemoveStore olBackup
lbl_Exit:
Set olNS = Nothing
Set olBackup = Nothing
Exit Sub
End Sub
Sub RunBackup(olNS As Outlook.NameSpace, olBackup As Outlook.Folder)
Dim oFrm As New frmSelectAccount
Dim strAcc As String
Dim olStore As Store
Dim olFolder As Folder
Dim olNewFolder As Folder
Dim i As Long
With oFrm
.BackColor = RGB(191, 219, 255)
.Height = 190
.Width = 240
.Caption = "Backup E-Mail"
With .CommandButton1
.Caption = "Next"
.Height = 24
.Width = 72
.Top = 126
.Left = 132
End With
With .CommandButton2
.Caption = "Quit"
.Height = 24
.Width = 72
.Top = 126
.Left = 24
End With
With .ListBox1
.Height = 72
.Width = 180
.Left = 24
.Top = 42
For Each olStore In olNS.Stores
If Not olStore.DisplayName = olBackup Then
.AddItem olStore
End If
Next olStore
End With
With .Label1
.BackColor = RGB(191, 219, 255)
.Height = 24
.Left = 24
.Width = 174
.Top = 6
.Font.Size = 10
.Caption = "Select e-mail store to backup"
.TextAlign = fmTextAlignCenter
End With
.Show
If .Tag = 0 Then GoTo lbl_Exit
With oFrm.ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
strAcc = .List(i)
Exit For
End If
Next i
End With
Set olFolder = olNS.Stores(strAcc).GetDefaultFolder(olFolderInbox)
Set olNewFolder = olFolder.Folders("Export")
olNewFolder.CopyTo olBackup
DoEvents
Set olFolder = olNS.Stores(strAcc).GetDefaultFolder(olFolderSentMail)
olFolder.CopyTo olBackup
End With
lbl_Exit:
Unload oFrm
Set olStore = Nothing
Set olFolder = Nothing
Exit Sub
End Sub