• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Save Selected Email Message as .msg File

Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
#1
M

michaelr

#2
Is it possible to use a VBA msoFileDialogFolderPicker instead of Function BrowseForFolder? I like to use the address bar of the FileDialogFolderPicker window.
 

Nik

New Member
Outlook version
Outlook 2007
Email Account
IMAP
#3
Hello Diane,


how to modify the 1. code of "Save Selected Email Message as .msg File" to save the incoming e-mails via the rule (in the rule assistant via executing a script)?

The original code is with the line "For Each objItem In ActiveExplorer.Selection" which automatically prevents to select the correct e-mail. Witch line have I to mode to get the correct focus (= to process the e-mails that are filtered via the rule)?


Thanks
Nik
 
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
#4
Delete these lines plus the End If and Next that go with them:
For Each objItem In ActiveExplorer.Selection
If objItem.MessageClass = "IPM.Note" Then
Set oMail = objItem

Delete
Dim oMail As Outlook.MailItem
Dim objItem As Object
and put oMail As Outlook.MailItem in the () in the title:
Public Sub SaveMessageAsMsg(oMail As Outlook.MailItem)

That should be all you need to do to convert it to a run a script macro (but its possible i missed something else).
 
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
#5
Is it possible to use a VBA msoFileDialogFolderPicker instead of Function BrowseForFolder? I like to use the address bar of the FileDialogFolderPicker window.
You can use the Excel or Word object model to access their open/save dialogs as Outlook VBA doesn't have its own open save dialog.

This is the Excel method but Word would be similar. Open the picker and set the name and location -
Set xlApp = CreateObject("Excel.application")
xlApp.Visible = False
strSaveAsFilename = xlApp.GetSaveAsFilename
xlApp.Quit
Set xlApp = Nothing

use it in the macro like this:
Attachment.SaveAsFile(strSaveAsFilename)
 

Nik

New Member
Outlook version
Outlook 2007
Email Account
IMAP
#6
Thank Diane!
My problem was that I didn't' delite the line "Dim oMail As Outlook.MailItem" also.
Now it works!
 

Nik

New Member
Outlook version
Outlook 2007
Email Account
IMAP
#7
Hello Diane,

I have here a VBA code but this is not mine I think I am not allow to publish it (also on the forum here).

I tried to modify the code sometimes with the same logic like my question yesterday/today like for "Save Selected Email Message as .msg File" to be possible to process the e-mails via the rule assistant but it don't work.

Would it be possible to show you this code and how without to publish it on the forum?

I think I need only to delete two ... three lines like in your code "Save Selected Email Message as .msg File" but I can't find them (similar to my problem with question on the forum from yesterday/today).

Nik
 
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
#10
i think this is the macro that does the work - Public Sub ExportEMailsToDriverViaRules(oMail As Outlook.MailItem)

and it looks like these lines need to be deleted along with the next that goes with for each myitem.

Set myExplorer = Application.ActiveExplorer
Set myFolder = myExplorer.CurrentFolder
If myFolder Is Nothing Then Error 5001
If Not myFolder.DefaultItemType = olMailItem Then GoTo ExitScript

'Stop if more than x emails selected
If myExplorer.Selection.Count > EXM_OPT_MAX_NO Then Error 5002

'No email selected at all?
If myExplorer.Selection.Count = 0 Then Error 5003

Set olSelection = myExplorer.Selection
For Each myItem In olSelection

replace the lines above with
set myitem = oMail
or replace each instance of myitem with omail.
 

Nik

New Member
Outlook version
Outlook 2007
Email Account
IMAP
#11
Hello Diane!

it works fine ;-). You can delete the attached file.

Do you know why the msgbox does not close automatically if the code is insert in VBA editor of outlook?

Code:
Public Sub MsgBoxTimer()
    Dim objShell

    Set objShell = CreateObject("WScript.Shell")
    objShell.PopUp "The e-mails have been exported", 2, "Information", vbInformation
    Set objShell = Nothing
End Sub
I would like only to be inform if the rules was processed on the background but without to press "OK" ore similar button.
This code works but the the msgbox does not close automatically.

Is this normal in VBA of Outlook or maybe I have an old Windows Script Host?

Nik
 

Nik

New Member
Outlook version
Outlook 2007
Email Account
IMAP
#12
Hello Diane!

Now I have solution and it works fine also in Outlook :

"Automatically Dismiss a Message Box"

Code:
Sub MessageBoxTimer()
    Dim AckTime As Integer, InfoBox As Object
    Set InfoBox = CreateObject("WScript.Shell")
    'Set the message box to close after 2 seconds
    AckTime = 2
    Select Case InfoBox.Popup("Click OK (this window closes automatically after 2 seconds).", _
    AckTime, "This is your Message Box", 0)
        Case 1, -1
            Exit Sub
    End Select
End Sub
Thank you ;-)

Nik