View Single Post
  #4  
Old October 10th 07, 02:57 PM posted to microsoft.public.outlook.program_vba
85ascMcLaren
external usenet poster
 
Posts: 1
Default get outlook mailbox size from vba

Good info. I was hoping that there was a direct property to pull the mailbox
size from instead of traversing all the folders and items under the mailbox
object, but I guess not. I am not allowed to install any third party add-ins
on the client PCs, so I guess this is the only way?

In using this, I have found a problem. Encrypted emails. The size
property will not pull when it encounters an encrypted email. I error out
with a -2147217660 - Method 'Size' of object 'MailItem' failed.

Any suggestions on either of these questions? Is there a more direct way
of pulling a size from the mailbox or even the individual folders (inbox,
sent, etc) without traversing through each item and without installing any
other add-ins? If not - any way around the encrypted problem.... ??

Thanks,
Jason


"bobm" wrote:

Sub GetFolderSize()
Dim lFolderSize As Long
Dim objSubFolder As MAPIFolder

Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objOutlookToday = objInbox.Parent

For Each objSubFolder In objOutlookToday.Folders
lFolderSize = lFolderSize + GetSubFolderSize(objSubFolder)
Next
MsgBox "Total Size = " & lFolderSize
End Sub

Function GetSubFolderSize(objFolder As MAPIFolder) As Long
Dim lFolderSize As Long
Dim objSubFolder As MAPIFolder

For Each objItem In objFolder.Items
lFolderSize = lFolderSize + objItem.Size
Next

' process all the subfolders of this folder
For Each objSubFolder In objFolder.Folders
'Do something with objFolder
lFolderSize = lFolderSize + GetSubFolderSize(objSubFolder)
Next

GetSubFolderSize = lFolderSize
Set objFolder = Nothing
Set objItem = Nothing
End Function

Ads