如何使用 vba 在另一个应用程序上 运行 宏
how to run a macro on another application using vba
我有一个 access 2007 数据库,我需要在表单上创建一个按钮,当我单击它时,它会 运行 另一个办公应用程序(如 visio 和 ms 项目)上的宏
以下 link 展示了如何为其他应用程序制作它,例如 word 和 excel 但它没有展示如何在 visio 或 ms 项目应用程序的情况下制作它
https://support.microsoft.com/en-us/kb/177760
运行 现有 Microsoft Excel 宏的子过程
以下 Sub 过程假定工作簿 ExcelFile.xls 包含一个名为 "TestMacro."
的宏
Sub XLTest()
Dim XL as Object
Set XL = CreateObject("Excel.Application")
XL.Workbooks.Open "C:\My Documents\ExcelFile.xls"
' If there is more than one macro called TestMacro,
' the module name would be required as in
'
' XL.Run "Module1.TestMacro"
'
' to differentiate which routine is being called.
'
XL.Run "TestMacro"
End Sub
运行 现有 Microsoft PowerPoint 宏的子过程
以下 Sub 过程假定演示文稿 PPTAutomation.ppt 包含一个名为 "AutomationTest."
的宏
Sub PPTTest()
Dim PPT as Object
Set PPT = CreateObject("PowerPoint.Application")
PPT.Presentations.Open "C:\My Documents\PPTAutomation.ppt", , ,False
' Note that the file name and the module
' name are required to path the macro correctly.
PPT.Run "PPTAutomation.ppt!Module1.AutomationTest"
End Sub
运行 现有 Microsoft Word 宏的子过程
以下 Sub 过程假定文档 WordDoc.Doc 包含一个名为 "WordMacro."
的宏
Sub WDTest()
Dim WD as Object
Set WD = CreateObject("Word.Application")
WD.Documents.Open "C:\My Documents\WordDoc.Doc"
' Note that the project name and module name are required to
' path the macro correctly.
WD.Run "Project.Module1.WordMacro"
End Sub
有什么建议吗?
Visio:
Sub VISTest()
Dim VIS as Object
Set VIS= CreateObject("Visio.Application")
VIS.Documents.Open "PATH"
' Note that the project name and module name are required to
' path the macro correctly.
VIS.Run "MARCRONAME"
End Sub
项目:
我无法测试项目,没有它,但看这里 https://msdn.microsoft.com/en-us/library/bb223292%28v=office.12%29.aspx 说
Dim pj As Object
Set pj = CreateObject("MSProject.Project")
pj.Application.FileOpen "My Project.mpp"
注意在 Office-Applications 的信任中心启用宏
我有一个 access 2007 数据库,我需要在表单上创建一个按钮,当我单击它时,它会 运行 另一个办公应用程序(如 visio 和 ms 项目)上的宏
以下 link 展示了如何为其他应用程序制作它,例如 word 和 excel 但它没有展示如何在 visio 或 ms 项目应用程序的情况下制作它
https://support.microsoft.com/en-us/kb/177760
运行 现有 Microsoft Excel 宏的子过程
以下 Sub 过程假定工作簿 ExcelFile.xls 包含一个名为 "TestMacro."
的宏 Sub XLTest()
Dim XL as Object
Set XL = CreateObject("Excel.Application")
XL.Workbooks.Open "C:\My Documents\ExcelFile.xls"
' If there is more than one macro called TestMacro,
' the module name would be required as in
'
' XL.Run "Module1.TestMacro"
'
' to differentiate which routine is being called.
'
XL.Run "TestMacro"
End Sub
运行 现有 Microsoft PowerPoint 宏的子过程
以下 Sub 过程假定演示文稿 PPTAutomation.ppt 包含一个名为 "AutomationTest."
的宏 Sub PPTTest()
Dim PPT as Object
Set PPT = CreateObject("PowerPoint.Application")
PPT.Presentations.Open "C:\My Documents\PPTAutomation.ppt", , ,False
' Note that the file name and the module
' name are required to path the macro correctly.
PPT.Run "PPTAutomation.ppt!Module1.AutomationTest"
End Sub
运行 现有 Microsoft Word 宏的子过程
以下 Sub 过程假定文档 WordDoc.Doc 包含一个名为 "WordMacro."
的宏 Sub WDTest()
Dim WD as Object
Set WD = CreateObject("Word.Application")
WD.Documents.Open "C:\My Documents\WordDoc.Doc"
' Note that the project name and module name are required to
' path the macro correctly.
WD.Run "Project.Module1.WordMacro"
End Sub
有什么建议吗?
Visio:
Sub VISTest()
Dim VIS as Object
Set VIS= CreateObject("Visio.Application")
VIS.Documents.Open "PATH"
' Note that the project name and module name are required to
' path the macro correctly.
VIS.Run "MARCRONAME"
End Sub
项目:
我无法测试项目,没有它,但看这里 https://msdn.microsoft.com/en-us/library/bb223292%28v=office.12%29.aspx 说
Dim pj As Object
Set pj = CreateObject("MSProject.Project")
pj.Application.FileOpen "My Project.mpp"
注意在 Office-Applications 的信任中心启用宏