从Outlook宏打开Excel时,没有可用的现有宏

时间:2013-05-09 14:00:16

标签: excel vba outlook outlook-vba

我在Outlook中有一个宏,我打开了一个保存在桌面上的Excel文件。一旦文件打开,我想运行一个我用excel编写的宏,但我的excel宏都没有。每当我以任何其他方式打开excel时,宏都可用,当我通过outlook vba打开excel时,宏被启用。我的问题是,当我通过Outlook宏打开Excel时,如何使这些宏可用?请参考下面的代码。

'Pre:None
'Post:Excel will have been opened, and the macro "CreatePowerPoint()"
'     will have been run on the excel document
Sub Gimba()
    Dim xlApp As Object, xlWkb As Object
    'open excel
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True ' can be False if you do not wont see reaction,
                     ' byt make sure is not fail
    'Do not show any alerts
    xlApp.DisplayAlerts = False

    'open excel document
    Set xlWkb = xlApp.Workbooks.Open(file path goes here)

    'call macro on excel document
    Call xlApp.Run("CreatePowerPoint")
End Sub

1 个答案:

答案 0 :(得分:4)

我假设您通常可用的宏存储在personal.xls工作簿中?如果是这样,那么您只需要在尝试启动CreatePowerPoint宏之前加载它。

尝试类似的内容(取决于您的个人工作簿的存储位置):

xlApp.Workbooks.Open ("C:\Documents and Settings\YourUserNameHere\Application Data\Microsoft\Excel\XLSTART\personal.xlsb")

另外,如果使用早期绑定,您可能会发现编写VBA代码更容易。为此,您需要添加对Excel对象模型的引用,然后使用Set xlApp = new Excel.Application而不是使用CreateObject。这样你就获得了所有优秀的Intellitype帮助。