for some reason I can't run VBA macros in Outlook, eventhough Security level is set to low.
any ideas?
Printable View
for some reason I can't run VBA macros in Outlook, eventhough Security level is set to low.
any ideas?
Is your code in the ThisOutlookSession? Restarted Outlook?
Yes, and Yes.
I've reduced the code to:
Private Sub Application_Startup()
MsgBox "test"
end sub
still doesn't work
Try something like this.
Make sure when you restart Outlook its no longer running in the system tray or running processes list and security is Medium or Low for testing purposes only and your code looks like this....VB Code:
Option Explicit Private Sub Application_MAPILogonComplete() MsgBox "Test" End Sub
found the problem: Outlook was still runing as a process, although not running as an application.
thanks!
No prob. :)
But you should be using the MAPILogonComplete to do anything as its the last event to run and prevents most startup issues involving Outlook no being finished initializing before running vba or add-in code.
Thanks!!
Finally, after an hour of searching and asking around I stumble on this post.
I had the exact same problem. And as an additional side effect my Outlook couldn't sent it's mail either! (there were some tasks requests in my outbox created by a macro, I suppose perhaps that was why?)
What I did, I had to enable the macros via Tools > Trust Center (is that new?!) and Macro Security.
Thereafter I still had the problem despite restarting Outlook. The key was to also kill the Outlook process.
Thanks for the tip!
Sorry, I don't know if anyone is still monitoring this thread or not, but I hope so. I have the same problem, but I have ended all Outlook (and Microsoft Office just in case) processes and it's still not running. The code is good as far as I can tell, and I have checked my security settings, enabled macros, etc., etc., and I'm so frustrated. It was working last week, and now... It's just not! Someone please help! :)
Hi,
In my opinion, you need to create a selfsigned certificate in order to be able to create/launch your macro on Outlook. It will work the first time you are coding but then you will be blocked.
It depends if you are doing this at home or at work but if you are at work I'm pretty sure you will need to create a cert.
To do so :
The "macro security settings" is fixed to : "notifications for digitally signed macros, all other macros disabled". You can create a certificate with SelfCert.exe ( Into C:\Program Files (x86)\Microsoft Office\Office14\)
Then to sign the macro you will have to put the certificate in the trusted publishers within the visual basic editor of Outlook.
Hope this help.
Hello, I am having a similar problem. The first time I entered and used the code below, all worked well. However, since restarting Outlook it won't work regardless of the settings for macros. Below is the code I am using, what would you recommend to resolve? Any assistance would be greatly appreciated.
Code:Option Explicit
Public Sub SaveMessageAsMsg()
Dim oMail As Outlook.MailItem
Dim objItem As Object
Dim sPath As String
Dim dtDate As Date
Dim sName As String
Dim enviro As String
enviro = CStr(Environ("USERPROFILE"))
For Each objItem In ActiveExplorer.Selection
If objItem.MessageClass = "IPM.Note" Then
Set oMail = objItem
sName = oMail.Subject
ReplaceCharsForFileName sName, "-"
dtDate = oMail.ReceivedTime
sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, _
vbUseSystem) & Format(dtDate, "-hhnnss", _
vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & ".msg"
sPath = enviro & "\Documents\"
Debug.Print sPath & sName
oMail.SaveAs sPath & sName, olMSG
End If
Next
End Sub
Private Sub ReplaceCharsForFileName(sName As String, _
sChr As String _
)
sName = Replace(sName, "'", sChr)
sName = Replace(sName, "*", sChr)
sName = Replace(sName, "/", sChr)
sName = Replace(sName, "\", sChr)
sName = Replace(sName, ":", sChr)
sName = Replace(sName, "?", sChr)
sName = Replace(sName, Chr(34), sChr)
sName = Replace(sName, "<", sChr)
sName = Replace(sName, ">", sChr)
sName = Replace(sName, "|", sChr)
End Sub
Hello, I am having a similar problem. The first time I entered and used the code below, all worked well. However, since restarting Outlook it won't work regardless of the settings for macros. Below is the code I am using, what would you recommend to resolve? Any assistance would be greatly appreciated.
Code:Option Explicit
Public Sub SaveMessageAsMsg()
Dim oMail As Outlook.MailItem
Dim objItem As Object
Dim sPath As String
Dim dtDate As Date
Dim sName As String
Dim enviro As String
enviro = CStr(Environ("USERPROFILE"))
For Each objItem In ActiveExplorer.Selection
If objItem.MessageClass = "IPM.Note" Then
Set oMail = objItem
sName = oMail.Subject
ReplaceCharsForFileName sName, "-"
dtDate = oMail.ReceivedTime
sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, _
vbUseSystem) & Format(dtDate, "-hhnnss", _
vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & ".msg"
sPath = enviro & "\Documents\"
Debug.Print sPath & sName
oMail.SaveAs sPath & sName, olMSG
End If
Next
End Sub
Private Sub ReplaceCharsForFileName(sName As String, _
sChr As String _
)
sName = Replace(sName, "'", sChr)
sName = Replace(sName, "*", sChr)
sName = Replace(sName, "/", sChr)
sName = Replace(sName, "\", sChr)
sName = Replace(sName, ":", sChr)
sName = Replace(sName, "?", sChr)
sName = Replace(sName, Chr(34), sChr)
sName = Replace(sName, "<", sChr)
sName = Replace(sName, ">", sChr)
sName = Replace(sName, "|", sChr)
End Sub
you should have started this in a new thread
you should supply more information
is this in a single user situation or a domain using exchange server?
if the latter have you contacted the IT support?
i am sure you are not using the same version of outlook that was involved in the original thread, so specify
have tried all the suggestions in this thread, especially to make sure that outlook is not running in task manager