VBA命名规则

在命名iFIX画面、调度程序、对象、变量、模块和程序时必须符合VBA标准的命名规则。可以在Visual Basic应用帮助文件中的Visual Basic命名规则部分找到相关信息:

  • 必须使用字母作为第一个字符。
  • 不能超过255个字符。
  • 注意:Visual Basic for Applications大小写不敏感,但在说明名称的语句中保持为大写。

  • 不该使用任何与Visual Basic中函数、语句和方法相同的名称,因为可能会屏蔽语言中相同的关键字。
    • 使用与定义的名称有冲突的内部语言函数、语句或方法时,必须显式说明。
    • 内部函数、语句和方法放在其相关类型库名之前,例如,如果有一个变量叫Right,那么只能使用VBA.Right来调用Right函数。
  • 不能在同一层范围内重复同一个名字。例如,不能在同一程序内声明两个名为level的变量。但是可以在同一模块中声明一个局部变量level 和一个程序级变量level
  • 不能在名称中使用空格、(-)、(.)、(!)或字符@、&、$、#。
  • 注意:如果数据库标签包含了VBA字符,譬如破折号,并且在脚本中使用了这些标签,那么可以使用两个iFIX子程序(ReadValue和WriteValue)达到此目的。能够在优化VBA工程中或iFIX自动化接口帮助文件中找到关于ReadValue和WriteValue子程序的详细说明。

  • 在名称中不能使用下划线(_),脚本会因此产生一些问题。因为 VBA 使用下划线来命名相关对象的脚本。
  • 画面、调度程序、图符、工具栏和工具栏类别都需要唯一的名称以便 iFIX工作台能同时装载它们。即使不同的文本类型文件扩展名不同也是正确的。下面内容说明这一点:
    • 如果试图打开一个画面,而它的名字与一个已经打开的文档冲突,则无法打开这个画面。而且会出现如下提示:

    已经打开同名的其它调度、画面、工具栏或图符集。

    • 如果试图启用一个工具栏,而它的名称与一个已打开的画面冲突, iFIX工作台将不能激活这个工具栏。
    • 如果打开一个与工具栏类别同名的画面,然后或单击自定义工具栏对话框上的按钮标签或运行任务向导, iFIX工作台都不显示该工具栏类别。

通过下面的做法,能纠正这些问题:

  1. 关闭画面。
  2. 更名画面,使之不与其它文档冲突。
  3. 关闭有冲突的图符集、调度程序、画面或工具栏。
  4. 重启工作台。
  5. 打开重命名的画面并存盘。

很显然,如果参阅了Visual Basic脚本中的对象,就会避免用相同名称命名对象、画面和全局子程序。这可以确保VBA能区分对象和子程序。否则,当运行脚本时可能会收到下面错误:

Expected procedure, not variable.

通过脚本更名VBA对象

避免在VBA脚本中重命名VBA对象,这么做可能会导致与那些对象相关的代码无法执行。例如,如果某个名叫Rect1的矩形有一段调用名为Sub Rect1_Click()的相关事件,那么将矩形名改为Rect2将会导致Sub Rect1_Click()无法执行,因为已经不存在名为的Rect1对象。

下面这段脚本在单击(Rect1)对象时会提示用户输入一个新的名称给矩形。当输入一个新的名称并单击“确定”,对象Rect1将不再存在同时代码变得孤立且无用。

Private Sub Rect1_Click()

     Dim strNewName as String

     strNewName = InputBox("Enter new name")

     Rect1.Name = strNewName

End Sub

相关信息

如何做...

您最近了解过 iFIX 吗 ?

查看最新版 iFIX 的所有新功能。

让 iFIX 帮助您提高效率,降低成本。