将OLEobject嵌入到Outlook预约系列中的VBA宏

问题描述:

我们使用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://*.com/a/44599739/4539709 – 0m3r

首先设置为“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