Powerdesigner VBA - 如何切换活动模型

时间:2017-08-29 14:13:52

标签: excel-vba powerdesigner vba excel

使用excel vba使用powerdesigner模型。我有多个模型打开,我试图访问。在我的代码中,我可以使用以下方法轻松访问当前活动模型:

Dim pd_App As PDCommon.Application
Set pd_App = New PDCommon.Application
Dim baseModel As PdPDM.Model
Set baseModel = pd_App.ActiveModel

有没有办法将活动模型切换到另一个也打开的模型?我已经查看了可用的方法,但没有看到任何可以执行此任务的方法。

由于

2 个答案:

答案 0 :(得分:1)

我知道它可能有副作用,但我能想象的最好是使用 OpenView

option explicit

if SelectDiagram("diagone") then
   output "model selected: " & activemodel.name
end if

' try to activate a model by its default diagram name
' returns true if the model was opened
function SelectDiagram(name)
   dim m
   for each m in models
      if m.defaultdiagram.name = name then
         m.defaultdiagram.openview
         SelectDiagram = true
         exit function
      end if
   next
   SelectDiagram = false
end function

答案 1 :(得分:1)

两个选项(这是更多的vbScript ...根据需要调整):

1)使用VBA打开模型并使用OpenModel引用的对象:

Set modelBase = pd_App.OpenModel(pathBase, omf_DontOpenView)

2)如果模型已经打开(因为我从您的问题推断),您可以询问工作区并从那里选择:

For Each model In pd_App.ActiveWorkspace.Children If model.Name = "My Model" Then Set theModelIWant = model : Exit For Next