如何使用 VBA 启动现有 Minitab 项目并与之交互?

How do I Launch Existing Minitab Project using VBA and interact with it?

我对 VBA-Minitab 交互有更大的计划,但我需要先从小处着手。我只是试图打开现有的 Minitab 项目,计算现有的 sheets,并显示一个包含计数的消息框。我在关于 Minitab 的 15 篇帖子以及文档中搜索了答案,但一直找不到解决方案。

            Sub GetModel()

            Dim MtbApp As Mtb.Application
            Dim MtbProj As Mtb.Project
            Dim MtbSheets As Mtb.Worksheets

            Set MtbApp = New Mtb.Application
            Set MtbProj = MtbApp.ActiveProject
            Set MtbSheets = MtbProj.Worksheets

            MtbApp.UserInterface.Visible = False
            MtbApp.UserInterface.DisplayAlerts = False

            MtbApp.Open "P:\Tools\Models\MTB Model Test\NSS_Model_Test.MPJ"

            MsgBox "There are " & MtbSheets.Count & " worksheets in the project."

            MtbApp.Quit
            End Sub

当我 运行 上面的代码时,相应的项目打开,一个消息框打开显示 1 sheet 在项目中,然后项目关闭。这个特定项目中有 8 sheets。此外,由于我之前所做的研究,我决定检查任务管理器以查看 minitab 应用程序是否真的正在关闭。它似乎继续 运行 在后台使用系统资源,即使代码提示它退出。

由于我初始化变量的顺序,这个具体的例子是错误的。下面的代码按预期运行。

        Sub GetModel()

        Dim MtbApp As Mtb.Application
        Dim MtbProj As Mtb.Project
        Dim MtbSheets As Mtb.Worksheets

        Set MtbApp = New Mtb.Application

        MtbApp.UserInterface.Visible = False
        MtbApp.UserInterface.DisplayAlerts = False

        MtbApp.Open "P:\Tools\Models\MTB Model Test\NSS_Model_Test.MPJ"

        Set MtbProj = MtbApp.ActiveProject
        Set MtbSheets = MtbProj.Worksheets


        MsgBox "There are " & MtbSheets.Count & " worksheets in the project."

        MtbApp.Quit
        End Sub