Saya mencoba membuat Outlook 2010 untuk mencetak lampiran secara otomatis saat kedatangan.
Saya telah menemukan ini di internet. Kode VBA adalah
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
Saya membiarkan makro berjalan. Saya menempelkan kode ke ThisOutlookSession di editor VBA dan menambahkan referensi ke Microsoft Scripting Runtime. Saya membuat aturan memeriksa apakah pesan baru itu dari saya dan jika demikian menjalankan skrip. Saya mengirim pesan dengan lampiran .doc kepada diri saya sendiri, dan saya mendapat pesan kesalahan "424 - Objek diperlukan" setelah diterima.
Saya tidak memiliki printer di rumah (saya memerlukan kode untuk tempat yang berbeda), jadi saya telah menetapkan Microsoft XPS Writer sebagai printer default saya hanya untuk melihat apakah itu berfungsi. Apakah ini alasan kesalahan? Jika tidak, apa dan bagaimana cara memperbaikinya?
Dan yang paling penting, bagaimana saya menyelesaikan pekerjaan? Saya perlu menggunakan skrip VBA (bukan add-on), dan saya baru di VBA.
Saya menggunakan Windows XP sekarang, tetapi saya perlu bekerja di Windows 7.
sumber
Jawaban:
Rekatkan kode berikut ini
ThisOutlookSession
.Edit kode sesuai kebutuhan lalu klik di
Application_Startup()
makro dan tekan tombol Run (F8). Ini memulai makro tanpa perlu me-restart Outlook.Lihat Mencetak Lampiran Secara Otomatis
sumber