2017-08-14 88 views
1

我們使用Outlook日曆跟蹤我們當地社區中心的預訂情況。對於每個日曆約會/房間預訂,我們從文件(Excel電子表格)中插入一個對象。電子表格和文件路徑對於每個預訂都是相同的。 Screenshot將OLEobject嵌入到Outlook預約系列中的VBA宏

enter image description here

我想簡化嵌入該電子表格的宏。不幸的是,Outlook不允許我錄製一個,因此我試圖用VBA來處理腳本。我試圖在Word中記錄宏,看它是否會複製到Outlook(它不會 - 對象變量未設置)。 Word生成的代碼是

Selection.InlineShapes.AddOLEObject ClassType:= _ 
    "Excel.SheetMacroEnabled.12", FileName:= _ 
    "K:\OutlookCalendar.xlsm" _ 
    , LinkToFile:=False, DisplayAsIcon:=False 

我想我需要指定的DIM,但我得到了我的深入,我一直無法找到一個谷歌的解決方案爲止。請有人指出我正確的方向嗎?

+0

查看示例https://stackoverflow.com/a/44599739/4539709 – 0m3r

回答

0

首先設置爲「Microsoft Word中X.0對象庫」,讓Outlook可以識別由Word中使用的對象的引用 - Click Tools/References

現在,爲了利用你錄製的宏在Outlook中,您需要爲選擇對象項目設置一個變量。

Option Explicit 
Public Sub UseWord() 
    Dim Inspector As Outlook.Inspector 
    Dim wdDoc As Word.Document 
    Dim Selection As Word.Selection 

    Set Inspector = Application.ActiveInspector() 
    Set wdDoc = Inspector.WordEditor 
    Set Selection = wdDoc.Application.Selection 

    '-> And insert your recorded macro here 

End Sub 

IDE工具/參考

enter image description here

+1

非常棒,謝謝 - 它運作良好。設置參考的第一步幾乎讓我感到厭倦 - 我花費的時間比我想要承認的嘗試點擊工具/參考文章更長! (對於像我這樣的人 - 在VBA窗口中單擊工具>參考,並確保選中Microsoft Word x.0 Object Library) – Rob