Я пытаюсь заставить Outlook 2010 печатать вложения автоматически при получении.
Я нашел это в интернете. Код VBA
Sub LSPrint(Item As Outlook.MailItem)
On Error GoTo OError
'detect Temp
Dim oFS As FileSystemObject
Dim sTempFolder As String
Set oFS = New FileSystemObject
'Temporary Folder Path
sTempFolder = oFS.GetSpecialFolder(TemporaryFolder)
'creates a special temp folder
cTmpFld = sTempFolder & "\OETMP" & Format(Now, "yyyymmddhhmmss")
MkDir (cTmpFld)
'save & print
Dim oAtt As Attachment
For Each oAtt In Item.Attachments
FileName = oAtt.FileName
FullFile = cTmpFld & "\" & FileName
'save attachment
oAtt.SaveAsFile (FullFile)
'prints attachment
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(0)
Set objFolderItem = objFolder.ParseName(FullFile)
objFolderItem.InvokeVerbEx ("print")
Next oAtt
'Cleanup
If Not oFS Is Nothing Then Set oFS = Nothing
If Not objFolder Is Nothing Then Set objFolder = Nothing
If Not objFolderItem Is Nothing Then Set objFolderItem = Nothing
If Not objShell Is Nothing Then Set objShell = Nothing
OError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description
Err.Clear
End If
Exit Sub
End Sub
Я позволил макросам работать. Я вставил код в ThisOutlookSession в редакторе VBA и добавил ссылку на Microsoft Scripting Runtime. Я создал правило, проверяющее, получено ли новое сообщение от меня, и, если да, запускаю скрипт. Я отправил себе сообщение с вложением .doc и получил сообщение об ошибке «424 - Требуется объект» при получении.
У меня нет принтера дома (мне нужен код для другого места), поэтому я установил Microsoft XPS Writer в качестве принтера по умолчанию, просто чтобы посмотреть, работает ли он. Это причина ошибки? Если нет, что и как я могу это исправить?
И самое главное, как мне выполнить работу? Мне нужно использовать сценарий VBA (не дополнение), и я новичок в VBA.
Я использую Windows XP сейчас, но мне нужно, чтобы эта штука работала на Windows 7.