VBA允许添加某个对象库或类型库来为工程提供参考,使其它应用对象应用到程序中。这些添加到 VBA 工程中的内容成为参考。您可以从 Visual Basic 编辑器 (VBE) 的“工具”菜单中选择“参考”命令以浏览、添加和删除这些参考。
无论何时添加控制到画面,这个控制类型库都基于VBA内部的画面。当从某个画面删除控制,则控制的向导会自动删除以增强性能。然而,将不能手动移走"Project_FactoryGlobals" 或 "Project_User"中的向导。
无论何时引用对象、控制或VBA中的内容,需遵循下一章的指导方针。要了解有关详细内容请参考VBA帮助文件。
删除引用的对象
任何在脚本中被引用的对象不能被删除。例如,在下面的脚本中当单击“Rect2”时程序会执行,但画笔不会被删除:
Rect1_Click()
Pen1.Source = "Fix32.ThisNode.AI_30.F_CV"
End Sub
Rect2_Click()
Chart1.DeletePen 1
End Sub
在这个例子中,如果想不通过名称应用而访问对象,能在Rect1_Click ()中使用下面代码:
Rect1_Click()
Dim o as object
set o = Chart1.Pens.Item(1)
o.Source = "Fix32.ThisNode.AI_30.F_CV"
End Sub
利用已删除的对象类型
当某个对象 (2Dshape, FixDynamics object, ActiveX control) 从某个画面中删除,在画面中没有留下对象的类型,那么对象类型库的引用会被移走。若想在脚本中继续使用这个对象的类型,必须通过从工具菜单选择reference,并选择类型库来手动在VBE中添加对类型库的应用。
拖放图符对象或工具栏按钮
当拖放某个图符对象到画面、剪切和粘贴某个图符对象或从类型库到工具栏拖放某个工具栏按钮时,应该知道下面发生的行为:
- VBA复制所有的窗体、脚本、事件和与工具栏按钮或图符对象有关的子窗体。
- VBA不复制任何与工具栏按钮或图符对象有关的VBA模块或等级模块。如果拖放图符对象或工具栏按钮到另一个画面或工具栏,在这些模块中所输入的代码将不会运行。
- VBA不会复制对其他对象的引用(例如为工具栏按钮或图符对象创建的控件或DLL等)。例如,如果为某个工具栏按钮添加了一个第三方OCX的作为一个窗体的控制内容,当拖放工具栏按钮到某个工具栏时,VBA不会复制引用。这些脚本直到打开Visual Basic 编辑器,并为工具栏工程创建一个OCX后才会执行。