วิธีเรียกใช้แมโครบนกล่องจดหมายที่ใช้ร่วมกันใน Outlook 2013


4

ฉันกำลังทำงานกับกล่องจดหมายของตัวเอง แต่ยังมีกล่องจดหมายที่ใช้ร่วมกัน ฉันมีมาโครเพื่อบันทึกสิ่งที่แนบมาโดยอัตโนมัติในอีเมลที่ฉันได้รับ แต่ใช้งานได้เฉพาะกับกล่องจดหมายของตัวเองเท่านั้นและไม่ใช่สำหรับกล่องจดหมายที่แชร์ คุณช่วยกรุณาบอกฉันว่าฉันสามารถทำให้เกิดขึ้นได้อย่างไร

นี่คือสิ่งที่ฉันมี:

Private Declare Function ShellExecute Lib "shell32.dll" Alias _
  "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
  ByVal lpFile As String, ByVal lpParameters As String, _
  ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
  Dim Ns As Outlook.NameSpace
  Dim Folder As Outlook.MAPIFolder

  Set Ns = Application.GetNamespace("MAPI")
  Set Folder = Ns.GetDefaultFolder(olFolderInbox)
  Set Items = Folder.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
  If TypeOf Item Is Outlook.MailItem Then
    PrintAttachments Item
  End If
End Sub

Private Sub PrintAttachments(oMail As Outlook.MailItem)
  On Error Resume Next
  Dim colAtts As Outlook.Attachments
  Dim oAtt As Outlook.Attachment
  Dim sFile As String
  Dim sDirectory As String
  Dim sFileType As String

  sDirectory = "I:\Finance_Administration\MMR\Attachments\"

  Set colAtts = oMail.Attachments

  If colAtts.Count Then
    For Each oAtt In colAtts

' This code looks at the last 4 characters in a filename
      sFileType = LCase$(Right$(oAtt.FileName, 4))

      Select Case sFileType

' Add additional file types below
      Case ".xls", ".doc", "docx", ".pdf"

         sFile = sDirectory & oAtt.FileName
         oAtt.SaveAsFile sFile
        'ShellExecute 0, "print", sFile, vbNullString, vbNullString, 0
      End Select
    Next
    End If
End Sub

1
ลองดูที่นี่ ฉันเกลียดบัญชีแลกเปลี่ยนที่แบ่งปัน อาจเป็นเรื่องง่ายกว่าที่จะใช้กฎเพื่อเรียกใช้มาโครการดาวน์โหลด
Raystafarian

คำตอบ:


4

หากต้องการเรียกใช้บนกล่องจดหมายแบ่งปันให้ลองแก้ไขรหัสของคุณ

ตัวอย่าง

Private Sub Application_Startup()
  Dim Ns As Outlook.NameSpace
  Dim Folder As Outlook.Folder
  Dim olShareName As Outlook.Recipient


  Set Ns = Application.GetNamespace("MAPI")
  Set olShareName = Ns.CreateRecipient("Om3r@Email.com") '// Owner's email address
  Set Folder = Ns.GetSharedDefaultFolder(olShareName, olFolderInbox) '// Inbox
  Set Items = Folder.Items
End Sub
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.