When the code constructs my email subject line, adding the date and time, it also adds a big space before the .msg file extension.
If I don't delete the space when the message box comes up for me to check the saving location, the code jumps to the error handler.
If I delete the space (which looks like 4 or 5 spaces), the file saves correctly.
Dim oMail As Outlook.MailItem
Dim objItem As Object
Dim atch As Attachment
Dim sPath, strFolderPath As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim answer As String
Dim dtDate As Date
Dim sName As String
Dim enviro As String
Dim jobNumber As String
On Error GoTo errHandler
enviro = CStr(Environ("USERPROFILE"))
jobNumber = InputBox("Please enter job number", "Saving to Job Folder", "Enter Job Number Here")
If jobNumber = "" Then Exit Sub
'create default name for saving file
If IsNumeric(jobNumber) Then
strFile = Int(jobNumber / 100) & "00-" & Int(jobNumber / 100) & "99\" & jobNumber & "\"
Else
strFile = ""
End If
strPathFile = "\\vacdc\VCI JOBS\" & strFile
If Dir(strPathFile, vbDirectory) = vbNullString Then
strFile = Int(jobNumber / 100) & "00-" & Int(jobNumber / 100) & "99\"
strPathFile = "\\vacdc\VCI JOBS\" & strFile
End If
answer = MsgBox(strPathFile, vbYesNoCancel + vbQuestion, "Save emails here?")
If answer = vbYes Then
sPath = strPathFile
Else
If answer = vbCancel Then GoTo exitHandler
strFolderPath = BrowseForFolder("\\vacdc\VCI JOBS\")
sPath = strFolderPath & "\"
End If
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, " mm-dd-yyyy", vbUseSystemDayOfWeek, _
vbUseSystem) & " " & sName & ".msg"
sName = InputBox("", "", sName)
Debug.Print sPath & sName
oMail.SaveAs sPath & sName, olMSG
I was asked to add this subroutine that my code from earlier post calls:
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