2017-05-07 152 views
1

我們有一個小的宏(添加到功能區),點擊時應該附加某個文件夾中的某些文件。Modal-Email中的Outlook/VBA宏Modal-Email

這在從Outlook中創建「新」郵件時起作用。當您使用(例如)Adobe Acrobats「以電子郵件發送」功能時,Outlook中的電子郵件將作爲模式對話框打開。

功能區上的按鈕現在不起作用。它簡單地什麼都不做。 (甚至不會顯示第一行的MessageBox) 使用開發工具 - >宏並從「there」中選擇宏可以工作。

爲什麼不是功能區上的按鈕,調用同樣的宏而不使用模態電子郵件?

宏 - 但正如所述,甚至不會出現一個MessageBox。

Sub AddAttachments() 

Dim Path As String 
Path = "C:\test\" 

Dim NewMail As MailItem, oInspector As Inspector 
Set oInspector = Application.ActiveInspector 
If oInspector Is Nothing Then 
    MsgBox "No active inspector" 
Else 
    Set NewMail = oInspector.CurrentItem 
    If NewMail.Sent Then 
     MsgBox "This is not an editable email" 
    Else 
     With NewMail 
      d = Dir(Path & "*.*") 
      While d <> "" 
      .Attachments.Add Path & d 
      d = Dir 
      Wend 
     End With 
    End If 
End If 
End Sub 

更新: 與其他應用程序的電子郵件發送應用程序提供更多的設置,我能圖下出:

  • 當使用「瞭望OLE」阿爾斯的電子郵件 - 發送方法,一切都按預期工作。
  • 使用「MAPI」作爲電子郵件發送方法時,會出現上述效果。

因此,Adobe Acrobat默認使用(簡單)MAPI。

編輯:知道實際的原因後,我發現這個:https://www.msoutlook.info/question/203 - 似乎是應用程序通過MAPI創建他們的電子郵件,因爲Outlook未加載「充分」,但只是一些基本的存根已知,不可解的限制。


更新:

當點擊 「發送郵件作爲按鈕」(1)出現下面的窗口。單擊功能區(2)內的「宏按鈕」不會執行任何操作。

enter image description here

切換到DeveloperTools,選擇「宏」,並從那裏選擇相同的宏但是作品:

enter image description here

,另一方面按鈕工作的「新郵件」通過創建Outlook和「新郵件」使用Outlook OLE Rathen市的比MAPI創建。

+0

它適用於我 – 0m3r

+0

您可以嘗試將代碼附加到資源管理器功能區而不是檢查器功能區。當您轉到Outlook的Visual Basic編輯器時,從Acrobat切換到Outlook。這裏有一個關於不在Outlook中的解釋,用於Word郵件。 https://www.howto-outlook.com/howto/senddocasmail.htm – niton

+0

@niton感謝這個想法。但沒有運氣。查看我的更新瞭解更多信息。 – dognose

回答

1

好了,總結問題和缺少解決方案:

我是在觸摸的支持下,顯示這一問題的各種應用和他們確認,這個問題通過使用MAPI作爲入口點造成的。

例如, 「PDF24」 允許你指定wheter它應該使用MAPIOutlook OLE:選擇MAPI導致同樣的問題,而選擇Outlook OLE使得VBA-宏工作...

enter image description here

我還注意到,當負責處理VBA-Scripts()(Microsoft.VbaAddinForOutlook)的Addin未加載時,使用MAPI觸發Outlook:

Eventlog (應用程序)顯示,一些加載項在啓動時加載:

Outlook loaded the following add-in(s): 


Name: Microsoft Exchange Add-in 
Description: Exchange support for Unified Messaging, e-mail permission rules, and calendar availability. 
ProgID: UmOutlookAddin.FormRegionAddin 
GUID: {F959DBBB-3867-41F2-8E5F-3B8BEFAA81B3} 
Load Behavior: 3 
HKLM: 1 
Location: C:\Program Files (x86)\Microsoft Office\Root\Office16\ADDINS\UmOutlookAddin.dll 
Boot Time (Milliseconds): 0 

Name: Outlook Social Connector 2016 
Description: Connects to social networking sites and provides people, activity, and status information. 
ProgID: OscAddin.Connect 
GUID: {2163EB1F-3FD9-4212-A41F-81D1F933597F} 
Load Behavior: 3 
HKLM: 1 
Location: C:\Program Files (x86)\Microsoft Office\Root\Office16\SOCIALCONNECTOR.DLL 
Boot Time (Milliseconds): 0 

... 

但VBA的加載項才加載,當「點擊」的宏觀按鈕的第一次,因爲它是LoadBehavior: 9而不是LoadBehavior: 3

(此事件出現 「點擊」):

Name: Microsoft VBA for Outlook Addin 
Description: 
ProgID: Microsoft.VbaAddinForOutlook.1 
GUID: {799ED9EA-FB5E-11D1-B7D6-00C04FC2AAE2} 
Load Behavior: 9 
HKLM: 1 
Location: C:\Program Files (x86)\Microsoft Office\Root\Office16\ADDINS\OUTLVBA.DLL 
Boot Time (Milliseconds): 0 

(事件是完全地丟失,通過MAPI-Call創建窗口時)

我設法「假」一個註冊表項以加載加載項馬上:

[HCU\SOFTWARE\Microsoft\Office\Outlook\Addins\Microsoft.VbaAddinForOutlook.1] 
"LoadBehavior"=dword:00000003 

Outlook的啓動,在此期間確實取得了外接負載 - 但並不VB-宏的預期影響在MAPI-生成的電子郵件-Windows中工作。

Name: Microsoft VBA for Outlook Addin 
Description: 
ProgID: Microsoft.VbaAddinForOutlook.1 
GUID: {799ED9EA-FB5E-11D1-B7D6-00C04FC2AAE2} 
Load Behavior: 3 
HKLM: 1 
Location: C:\Program Files (x86)\Microsoft Office\Root\Office16\ADDINS\OUTLVBA.DLL 
Boot Time (Milliseconds): 0 

但也許「這」可能是一個良好的開端面臨同樣的問題,尋求解決問題的人。