书写规定
长语句续行
语句的长度其实没有明确的限制,但窗口的尺寸却有限。为了使语句具有更好的可读性,往往在编写代码语句时,将一个长语句行断为两行或多行,断行处要用下划线"_”连接,下划线左右至少应有一个空格。如下所示:
MsgResult = MsgBox(“请选择 ‘是 ’或 ‘否 ’,决定是否打印图形文件 ” _
vbYesNo + vbQuestion + vbDefaultButton2)
注释语句
使用英文状态下的单撇号‘作为注释语句的开始,注释语句不会编译和执行。
大小写的约定
关键字、类对象名、内置常数符号等,字母的大小写有特定的设定,无须用户干涉,也不论用户怎么书写,均按系统规定的形式显示,如:Dim blkObj As AcadBlock。
从功能上讲,代码中字母的大小写一般不会影响程序的运行,使用大小写,目的也是为了提高代码的可读性。如上语句,当你声明对象变量为bikObj之后,在后续代码输入中,不论你全部用大写字母,还是全部用小写字母,总是只有字母0为大写,其余均为小写。
对象、属性、方法和事件
对象
对象(Object)是VB程序设计的核心。窗体、控件、屏幕、打印机、数据库和应用程序等都是对象。(一切皆对象)
属性
属性是对象的特征。
例如,在AutoCAD中Circle对象的Center属性表示位于圆心在3D世界坐标系中的坐标。更改圆心,只需将属性设置为新坐标。
方法
对象可调用的过程称为方法,对象用方法来执行动作。
例如,在AutoCAD中Circle对象的Offset方法可以在距现有圆的指定偏移距离处创建新对象。
事件
事件是可被对象识别的动作,例如单击鼠标、文本框中的文字改变、加载或卸载窗体等都是事件。通过向对象的事件过程中添加代码,使得应用程序可以响应该对象的事件。当对象的事件被激发时,VB执行对象的事件过程中的代码。
变量与常量
变量说明
任何编程语言都离不开变量。变量用来指定内存中的某一位置及大小,在变量的有效期内,该位置为用户保存特定的数据,直到该变量被释放。要正确地使用变量,有两个要素:确定变量的类型及在程序中声明变量。
数据类型
VB中常见的数据类型有字节型(Byte)、整数型(Integer)、长整数型(Long)、单精度浮点型(Single)、双精度浮点型(Double)、货币型(Currency)、小数型(Decimal)、字符串型(String)、日期型(Date)、布尔型(Boolean)等。
定义数据类型的优点如下:
1. 字符串 String
字符串是用于保存文本数据的,字符串内容应放置于双引号内。
2. 数字类型
VBA中用于表示数字的数据类型有4种:整型 Integer、长整型 Long、单精度浮点型 Single、双精度浮点型 Double。整型及长整型用于表示整数,单精度与双精度浮点型都用于表示小数。
整型与长整型的区别在于两者所能表示的数值范围不同:
而单精度浮点数与双精度浮点数除了在数值范围不同之外,两者所能表示的数据精度(即小数点后多少位)也是不同的
反正一句话,它们可以表示非常大的数据,但要注意的时,单精度浮点型其精度是6,即只能保存小数点后最多6位的数据;双精度浮点型其精度是14,即只能保存小数点后最多14位的数据。如果超出以上长度,则超出部分会被去掉,并且会自动四舍五入。
3. 日期型 Date
日期型数据不仅可以表示日期,还可以表示时间。可以表示的日期范围是:100年1月1日 ~ 9999年12月31日;可以表示的时间范围是:0:00:00 ~ 23:59:59。
4. 布尔型 Boolean
布尔型数据用于表示逻辑值:真、假 。其中“真”为True,“假”为False。布尔值数据常用于条件判断语句。应当注意的是,当其它数据类型转换为布尔值时,0会转成False,其它值则变成True。当把布尔值转换成其他数据类型时,False会转换为0,True则是-1。
5. 变体型 Variant
变体型数据是一种特殊的数据类型,几乎可以用于保存所有其它数据类型的数据。可以简单地理解为:当不知道变量所要表示的数据是什么类型时,就把它定义为Variant。
变量声明
变量的声明在形式上有显式声明、隐式声明和用户自定义类型声明3种。
显式声明
Dim 变量名1 As 变量类型1
Private 变量名1 As 变量类型1
Public 变量名1 As 变量类型1
Dim、Private和Public是声明变量的关键字。
注意:固定长度字符串的声明格式如下:Dim 变量名 As String*strLength。
隐式声明
变量的隐式声明要求,在首次分配变量值时,在变量的结尾处使用一种特殊的字符,例如:IntVal%=1。
以下为变量类型与标识字符表:
变量类型标识字符整型%长整型&单精度!双精度#货币型@字符串$
自定义类型声明
用户自定义数据类型,可使用户创建包含混合信息。
[Public] Type 变量名
元素 1 As 数据类型 1
元素 2 As 数据类型 2
End Type
以下为代码示例:
Type Employee
FirstName As String
LastName As String
Salary As Single
End Type
Public Sub User_Defined()
Dim NewEmployee As Employee
Dim FullName As String
NewEmployee.FirstName = "John"
NewEmployee.LastName = "Dole"
NewEmployee.Salary = 3500
FullName = NewEmployee.FirstName & "," & NewEmployee.LastName
MsgBox FullName & "的月薪是" & NewEmployee.Salary
End Sub
注意:Option Explicit是强制变量声明语句。
常量声明
常量的区别在于,常量符号代表的数据不能在程序的运行过程中被修改。常量符号可以自定义,也可以使用VBA定义的内置常量符号。语法如下:
Const 常量名称 As 数据类型 = 值
基本语句
赋值语句
常见的语法格式为:变量=表达式。对象变量的赋值必须使用Set关键字。其语法格式如下:set 对象变量 =对象运算表达式,以下为示例:
Set blkobj = ThisDrawing.Blocks.Add("TestBlock")
IF条件语句
语法格式1:
If condition Then Command
语法格式2:
If condition Then
Code Lines 1
[Else]
[Code Lines 2]
End If
语法格式3:
If condition1 Then
Code Lines 1
ElseIf condition2 Then
Code Lines 2
[Else]
[Code Lines n]
End If
Select Case语句
Select Case compvalue
Case valuel
Code Lines 1
Case value2
Code Lines 2
[Case Else ]
[Code Lines n]
End Select
Do...Loop语句
语法格式1:
Do While condition
Code Lines
Loop
语法格式2:
Do Until condition
Code Lines
Loop
语法格式3:
Do
Code Lines
Loop While condition
语法格式4:
Do
Code Lines
Loop Until condition
For...Next语句
For counter = s_value To e_value[ Step stepvalue]
Code Lines
Next [counter]
For Each...Next语句
For Each Object In collection
Code Lines
Next [Object]
With...End With语句
从严格意义上说,With...End With语句不是一个控制语句,它是一种简化对象对属性引用的结构语句。
With Object
Statements
End With
Goto语句
Goto语句是一个无条件跳转语句,它可以使程序的执行指针,转移到任意一条语句上。
语法格式:Goto Line_tag,其中的Line_tag是一个行标志或行号。行标志的名称由编程者设定,以冒号“:”结束。在一个过程中可以使用许多行标志,但每一个行标志必须有一个唯一的名称。
Exit语句
On Error语句
On Error Resume Next示例:
Sub Ch11_ColorEntities()
Dim entry As Object
On Error Resume Next
For Each entry In ThisDrawing.ModelSpace
entry.Color = acRed
Next entry
End Sub
On Error GoTo Label示例:
Sub Ch11_ColorEntities2()
Dim entry As Object
On Error GoTo MyErrorHandler
For Each entry In ThisDrawing.ModelSpace
entry.Color = acRed
Next entry
Exit Sub
MyErrorHandler:
Msgbox entry.EntityName + " is on a locked layer." + _
" The handle is: " + entry.Handle
Resume Next
End Sub
关于处理错误
对于VB和VBA,对错误的默认反应是显示错误消息并终止应用程序,但这是不够的,可能存在要忽略的错误,或者要提供特殊响应的错误。通常,只要需要用户输入以及使用文件I/O,就必须进行错误处理。
应用程序中主要有以下类型错误:
VB和VBA提供Err对象捕获错误类型的信息。Err对象具有多个属性:Number、Description、Source、HelpFile、HelpContext和LastDLLError。Err对象最重要的属性是“Number”和“Description”属性。Number属性包含与错误关联的唯一错误代码,而Description属性包含通常显示的错误消息。
说明:本篇内容由SudoMe整理修改AutoCAD的官方开发文档而来,如有内容表述不准确或理解错误的,请及时反馈。