If all of your settings are correct but you still get the popup saying that macros are disabled, your OTM file — the VBA project file — is corrupt. In the case of Outlook:
- Export your modules to .BAS files
- Exit Outlook
- Go here in Explorer:
C:\Users\[user]AppData\Roaming\Microsoft\Outlook
- Delete the OTM file
- Restart Outlook
- Import your exported .BAS files into the new VBA project which it created for you.
Seems like certain VBScript references are being ripped off of the Web; thus it was great to see this:
http://ss64.com/vb
It’s not very much documented, but if you have a lot of WordPerfect files, try renaming their extensions to .DOC. Word will load them, unless they are very old files from WordPerfect for DOS.
If you have a huge tree of WPD files, use a batch file like this:
For /R "X:\TOP_OF_TREE" %%G in (.) Do (
Pushd %%G
Echo now in %%G
ren *.wpd *.doc
Popd )
Echo "Done!"
Try this:
Dim objNetwork
Set objNetwork = CreateObject("WScript.Network")
Dim objWinntComp
Set objWinntComp = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.ComputerName & ",computer")
MsgBox "WinNT://" & objNetwork.UserDomain & "/" & objNetwork.ComputerName & ",computer"
Dim strGroupToCheck
strGroupToCheck = "GROUP_TO_DETECT"
If IsMemberOfGroup(objNetwork.UserDomain, objWinntComp, strGroupToCheck) = True Then
MsgBox "You are a member of " & strGroupToCheck
ElseIf IsMemberOfGroup(objNetwork.UserDomain, objWinntComp, strGroupToCheck) = False Then
MsgBox "You are NOT a member of " & strGroupToCheck
WScript.Quit
ElseIf IsMemberOfGroup(objNetwork.UserDomain, objWinntComp, strGroupToCheck) = "Error" Then
MsgBox "There was no group found called " & strGroupToCheck
WScript.Quit
End If
Function IsMemberOfGroup(strUserDomain, objComp, strGroup) 'the user is a member of a specified group
IsMemberOfGroup = False
Dim objGroup
On Error Resume Next
Set objGroup = GetObject("WinNT://" & strUserDomain & "/" & strGroup & ",group")
If Err.Number Then
IsMemberOfGroup = "Error"
Else
IsMemberOfGroup = objGroup.IsMember(objComp.ADsPath & "$")
End If
End Function
Try this:
@echo off
for /D %%Q in (C:\*) do echo Directory: %%Q
for %%Q in (C:\*) do echo File: %%Q
The above is a solid batch file — if you use the logic in the command shell, use single percents, not doubles!
The below is revised from here. It works well, as long as a reference to the Microsoft Office [currentversion] Type Library is created. This is confirmed to work well in Access 2010.
Public Function ChooseFile() As String
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False 'Select only one file
.Title = "Choose file" 'Set dialog title
.ButtonName = "Choose" 'Set the button caption
'.Filters.Clear 'Make sure the filter list is clear
'Add 2 filters
'.Filters.Add "JPEGs", "*.jpg"
'.Filters.Add "Bitmaps", "*.bmp"
'.FilterIndex = 2 ' Set the filter index to 2
'.Filters.Add "All", "*.*"
'Set initial path
.InitialFileName = ""
'Optionally show files as thumbnails
'.InitialView = msoFileDialogViewThumbnail
.InitialView = msoFileDialogViewList
'Show the dialog and test the return
If .Show = 0 Then
'didn't pick a file - exit sub
ChooseFile = ""
Exit Function
End If
'Should be only one file name - grab it
ChooseFile = Trim(.SelectedItems(1))
'On Error Resume Next 'Set error trap
End With
End Function
Here is a VBscript which, if edited for your Gmail account and environment, will work well on anything XP, Server 2003, or above. It does not require any additional installations, CDO is an object built in to Windows:
EmailSubject = "Sending Email by CDO"
EmailBody = "This is the body of a message sent via" & vbCRLF & _
"a CDO.Message object using SMTP authentication."
Const EmailFrom = "self@gmail.com"
Const EmailFromName = "My Very Own Name"
Const EmailTo = "someone@destination.com"
Const SMTPServer = "smtp.gmail.com"
Const SMTPLogon = "self@gmail.com"
Const SMTPPassword = "gMaIlPaSsWoRd"
Const SMTPSSL = True
Const SMTPPort = 465
Const cdoSendUsingPickup = 1 'Send message using local SMTP service pickup directory.
Const cdoSendUsingPort = 2 'Send the message using SMTP over TCP/IP networking.
Const cdoAnonymous = 0 ' No authentication
Const cdoBasic = 1 ' BASIC clear text authentication
Const cdoNTLM = 2 ' NTLM, Microsoft proprietary authentication
' First, create the message
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = EmailSubject
objMessage.From = """" & EmailFromName & """ <" & EmailFrom & ">"
objMessage.To = EmailTo
objMessage.TextBody = EmailBody
' Second, configure the server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTPLogon
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTPPassword
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPPort
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = SMTPSSL
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
' Now send the message!
objMessage.Send