【笔记】Visual Basic 学习笔记

前言

Visual Basic(VB)是由微軟公司開發的包含環境的事件驅動程式語言。它源自於BASIC程式語言。VB擁有圖形化使用者介面(GUI)和快速應用程式開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接資料庫,或者輕鬆的建立ActiveX控制項。程式設計師可以輕鬆地使用VB提供的組件快速建立一個應用程式。(维基百科

注释

1
' 注释内容

语句分隔符

  • 每句代码独占一行
  • 如果想要多个代码共同占一行,需要使用;进行分隔

代码结构

定义事件

  • 所有代码要写在事件中

定义无参的事件

1
2
3
4
5
Sub 对象名_事件名()

方法内的代码

End Sub

定义有参的事件

1
2
3
4
5
Sub 对象名_事件名(参数)

方法内的代码

End Sub

获取和修改对象的属性值

  • 属性是对象的特征,不同的对象具有不同的属性

获取对象的属性值

1
对象名.属性名

设置对象的属性值

1
对象名.属性名 = 属性值

调用方法

调用无参的方法

1
对象名.方法名

调用有参的方法

1
对象名.方法名(参数)

标识符

  • 标识符必须以字母或汉字开头,后跟字母、汉字、数字、下划线
  • 变量名的最后一个字符可以是类型符
  • VB不区分英文大小写
  • 标识符不可以与关键字重名

关键字

  • 关键字也称为保留字,是程序设计语言中预先定义的、具有特殊含义的标识符

常量

  • VB中的常量有两种:直接常量和符号常量
  • 直接常量直接用数据表示
  • 符号常量用一个标识符代替一个常量
    • 在系统内部预先定义好的符号常量
    • 用户定义的符号常量

常量的定义

1
Const 常量名 AS 数据类型 = 常量值

省略数据类型

  • 如果省略数据类型,VB按表达式的求值结果确定合适的数据类型
1
Const 常量名 = 常量值

变量

变量声明

显式声明

声明变量并指定数据类型
1
Dim 变量名 As 数据类型
声明变量不指定数据类型
  • 如果省略数据类型的定义,那么默认为变体型
1
Dim 变量名
变量名末尾添加类型符
  • 变量名末尾添加类型符来代替数据类型声明

声明整型变量

1
2
3
Dim 变量名 As Integer

Dim 变量名%

声明单精度型变量

1
2
3
Dim 变量名 As Single

Dim 变量名!
声明多个变量
  • 声明多个变量用,隔开
1
Dim 变量名 As 数据类型, 变量名, 变量名%

隐式声明

  • 不作变量的声明而直接使用的,这种方式为隐式声明
  • 隐式声明的变量默认为变体型,可以存放任意类型的数据
1
变量名

赋值

  • 变量未赋值时将采用默认值
  • 如果等号两侧数据类型不一致时,将自动转换数据类型
    • 如果等号两侧的数据类型不相容,则会报错

为变量赋值

1
变量名 = 值

为对象的属性赋值

1
对象名.属性名 = 值

为对象的默认属性赋值

1
对象名 = 值

同时为多个变量赋值

1
Dim 变量名 = 值, 变量名 = 值
  • 区别:使用;分隔开的是多条代码,而使用,分隔开的是一条代码
  • 不使用Dim关键字赋值时,只能使用;分隔

运算符与表达式

算数运算符

优先级 运算符 备注
0 () 优先运算
1 ^ 求幂
2 - 求负
3 * 求积
3 / 求商
4 \ 整除求商
5 Mod 求模
6 + 求和
6 - 求差
  • 整除时,商只保留整数部分,小数部分舍弃
  • 求模时,正负号跟由模运算符前面的数决定
  • 如果求差的两者都是日期,结果就为两个日期相差的天数
  • 日期型数据加或减一个整数,结果仍为日期型数据

关系运算符

运算符 备注
= 相等
> 大于
< 小于
>= 大于等于
<= 小于等于
<> 不等于
Link 与通配符比较
Is
  • 如果比较时两者都是数字,就按照数值比较
  • 如果比较时两者都是字母,就按照字母的ASCII码值比较
  • 如果比较时两者都是中文,就按照中文拼音首字母的ASCII码值比较
  • 如果比较中文和英文,那么中午大于英文,因为中文的Unicode编码大于英文的Unicode编码
  • 关系运算符的优先级都相同
通配符 备注
* 代表任意一个或多个字符
? 代表任意一个字符
# 代表任意一个数字

逻辑运算符

优先级 运算符 备注
最高 () 优先运算
Not 非。取反
And 与。有False则False,全True则True
Or 或。有True则True,全False则False

字符串运算符

运算符 备注
& 任意数据类型与任意数据类型合并为字符串
+ 字符串与字符串合并为字符串
  • 变量与运算符&之间要用空格隔开,以免被VB误认为是八进制数或类型符

各个运算符的优先级

优先级 运算符
0 ()
1 算数运算符
2 字符串运算符
3 关系运算符
4 逻辑运算符

输出语句

自动换行

1
Print 输出的内容

不自动换行

1
Print 输出的内容;

变量的作用域

局部变量(过程级变量)

  • 在事件过程和通用过程内,用Dim修饰的变量、用Static修饰的变量、隐式声名的变量
  • 形参也看作是局部变量
  • 局部变量只能在本过程中使用,不能被其他过程引用
  • 不同过程中声名的局部变量可以同名

模块级变量(文件级变量)

  • 在窗体模块和标准模块的通用声名段,用Dim修饰的变量、用Private修饰的变量
  • 模块级变量可以被本模块内的所有过程引用
  • 不同模块中所声名的模块级变量可以同名
  • 如果模块级变量与局部变量同名,则在声名该局部变量的过程中优先引用局部变量

全局变量(工程级变量)

  • 在窗体模块或标准模块中的通用声名段,用Public修饰的变量
  • 全局变量可以被本工程内的所有过程引用
  • 如果全局变量声名在标准模块中,可在任何过程中引用;如果声名在窗体模块中,在其他窗体模块或标准模块中使用声名该变量的窗体名.变量名 引用
  • 不同模块声名的全局变量可以同名,但在引用时应在变量名前加声名该变量的窗体名或标准模块名
  • 如果全局变量与局部变量同名,优先引用局部变量,如果需要引用同名的全局变量,应在全局变量名前加上全局变量所在的窗体模块或标准模块名

完成

参考文献

哔哩哔哩——教达优