【发布时间】:2014-04-10 10:55:22
【问题描述】:
VBA documentation 定义了以下标记:
special-form = “Array“ / “Circle” / “Input” / “InputB” / “LBound” / “Scale” / “UBound”
根据文档:
special-form 是一个在表达式中使用的 reserved-identifier,就好像它是程序定义的过程名称一样,但它的参数有特殊的语法规则.
但没有提及这些关键字的用途,也没有提及参数的数量、类型和返回值。
有些记录在其他地方:
- Array 返回一个带有可变数量参数的字面量数组
- Input 和 InputB 与 line 一起使用
- LBound 和 Ubound 分别返回数组的第一个和最后一个索引,与 VB 相同
我的问题是:
Circle 和 Scale 的用途是什么?它们是如何使用的?
我发现 Circle 的正确(奇数)语法与 BASIC statement
相同CIRCLE(xcenter, ycenter), radius[,[color][,[start],[end][,aspect]]]
并且没有给出语法错误(我没有发现任何提及 Scale 虽然它似乎没有任何参数)但我不能将它分配给变量,如果我尝试运行下面的代码(语法正确)我收到以下错误:
没有合适的对象,方法无效
代码:
Sub test1()
Circle (5, 5), 10
End Sub
Sub test2()
Scale
End Sub
【问题讨论】:
-
VB 从 QBASIC 继承了奇怪的图形方法语法(什么是圆/比例),而 VBA 进一步从 VB 继承了它们(它是基于它的)。据推测,与其在运行时删除这些构造的特殊解析规则,不如将它们保留为 noop 更简单。