I was trying these Shells too but I don't have XPS Viewer installed to see if I can open them intact. I've got them commented out to flip between IE and XPS Viewer.
Sub SaveAsHTML()
Dim myItem As Outlook.Inspector
Dim objItem As Object
Dim EmailDate As Date
Dim MyMail As MailItem
Dim MailDate As String
Dim myOlApp
Dim strname As String
On Error Resume Next
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.ActiveInspector
Set MyMail = myItem.CurrentItem
On Error GoTo 0
If Not TypeName(myItem) = "Nothing" Then
Set objItem = myItem.CurrentItem
MailDate = MyMail.ReceivedTime
MailDate = Replace(MailDate, "/", "-")
MailDate = Replace(MailDate, ":", ".")
strname = Name ''objItem.Subject
If strname = "" Then Exit Sub '' Means User hit canceled in dialog box
'Prompt the user for confirmation
Dim strPrompt As String
Dim SaveLocation As String
SaveLocation = BrowseForFolder & "\"
If SaveLocation = "\" Then Exit Sub
With MyMail
'Call SaveAttachment(strname, SaveLocation, MailDate)
MyMail.SaveAs SaveLocation & MailDate & " " & strname & " 1" & ".xps"
'Shell """C:\Windows\System32\XPSViewer\XPSViewer.exe"" /p """ + SaveLocation & MailDate & " " & strname & " 1" & ".xps" + """", vbHide
'Shell """C:\Program Files\Internet Explorer\iexplore.exe"" /p """ + SaveLocation & MailDate & " " & strname & " 1" & ".xps" + """", vbHide
End With
Else
MsgBox "You Have no Email Open"
End If
End Sub