我有一個宏,在關閉 Outlook 客戶端時,將私有變數設定為類模塊的實體。代碼運行良好,沒有拋出任何錯誤。但是,傳遞的類模塊(如果我使用了錯誤的術語,請糾正我),沒有運行它的子例程。
目標是在應用程式退出時創建并保存新的注釋項。
來自“ThisOutlookSession”(Microsoft Outlook 物件):
Option Explicit
Private ShutdownTrigger As Class2
Private Sub Application_Quit()
Set ShutdownTrigger = New Class2
End Sub
來自“Class2”(類模塊):
Option Explicit
Private Sub ExitApp()
Dim olApp As Outlook.Application
Dim olNS As Outlook.NameSpace
Dim olNoteItm As Outlook.NoteItem
Set olApp = Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set olNoteItm = olApp.CreateItem(olNoteItem)
With olNoteItm
.Body = "murphy"
End With
olNoteItm.Save
End Sub
目前,尚未創建新筆記。請注意,子例程“ExitApp”代碼在放置在“ThisOutlookSession”物件中時有效。
另外,作為一個可能不相關的問題,我是否需要創建一個私有變數“關閉觸發器”,或者我可以像在大多數子例程中那樣使用 Dim 陳述句嗎?
謝謝您的幫助!
uj5u.com熱心網友回復:
首先,無需Application
在代碼中創建新的 Outlook 實體即可創建新的筆記項 Outlook。相反,您可以Application
在模塊中獲取一個實體ThisOutlookSession
并將其傳遞給方法。
其次,您需要在創建的物件上呼叫 ExitApp 方法:
Option Explicit
Private ShutdownTrigger As Class2
Private Sub Application_Quit()
Set ShutdownTrigger = New Class2
ShutdownTrigger.ExitApp()
End Sub
第三,該方法可能看起來如下:
Option Explicit
Private Sub ExitApp(olApp As Outlook.Application)
Dim olNS As Outlook.NameSpace
Dim olNoteItm As Outlook.NoteItem
Set olNS = olApp.GetNamespace("MAPI")
Set olNoteItm = olApp.CreateItem(olNoteItem)
With olNoteItm
.Body = "murphy"
End With
olNoteItm.Save
End Sub
在VBA 類模塊 - 終極指南文章中閱讀有關 VBA 中的類模塊的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/478790.html
下一篇:用于自旋向上和向下粒子的類?