VBA Excle运行一个获取excel文件名的Powerpoint marco

时间:2016-09-26 16:43:45

标签: excel-vba macros powerpoint-vba office-2016 vba

我在自动创建的数据文件中有这个宏(创建的一部分是插入并运行宏)。 我想打开一个模板文件然后需要运行一个PPT宏来获取excel数据文件名。调用宏的那个(data1.xlsm) 我有这个,但无法找出带文件名的宏调用。

Dim PPTObj As Object 
Set PPTObj =    CreateObject("PowerPoint.application") 
With PPTObj 
.Presentations.Open Filename:="C:\Presentations\Company\Template.pptm" 
.Run  "Template.pptm!MainMacro" 
End With

。运行“Template.xlsm!MainMacro(filename)”就是我要找的。

也许另一个方向是在PPT中获取对象。 但是如何在事先不知道的情况下获取数据文件名/路径?

Set wb - getobject(openwexcelfile)

由于另一个程序(非办公室)正在创建数据文件,我不知道它的名称或目录,但它是调用powerpoint宏的文件,它将被打开。

感谢您的任何见解。

1 个答案:

答案 0 :(得分:0)

感谢共产国际的见解。 这是最终的解决方案。 睡眠是为了在尝试运行宏之前允许PPT应用程序打开。

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub auto_open()

fname = ActiveWorkbook.Name
Path = ActiveWorkbook.Path

Dim PPTObj As Object
Set PPTObj = CreateObject("PowerPoint.application")
PPTObj.Presentations.Open Filename:="C:\presentation\Template.pptm"
    Sleep (3000)
PPTObj.Run "Template.pptm!Main", fname, Path
End Sub