VB编码入门

696 阅读6分钟

一、代码编写

1.高度智能化编辑特性

  • 自动语法检查

当一行代码输入完成并将光标移动到其他行时,VB将对该行代码进行语法检查。如果没有语法错误将进行自动格式编排;如果存在语法错误,屏幕会弹出错误信息框,提示错误的类型同时该行为变成红色。

  • 自动格式编排

VB会对输入完成且没有错误的代码进行自动的格式编排。对VB中的关键字、注释字符、非关键字等语言要素采用不同的颜色以示区分,对VB中的所有关键字的第一个字母全部改为大写,其后变为小写,对各个语言要素之间加上适当的空格。

  • 自动编码

自动编码功能体现在两个方面,一是“自动列出成员”功能:当在代码窗口输入某个对象的名称时,屏幕会自动列出相应对象的所有属性和方法。键入属性或方法名称的前几个字母便可以从列表中选择该名称,按下Tab键即可完成属性名称的输入。这样,一方面大大加快了代码的输入速度,另一方面减少对属性名的记忆量。自动编码的另一个功能是“自动显示快速信息”功能,即在输入合法语句或函数名称后,屏幕会显示该命令或函数的相应语法,专业可以根据提示完成相关参数的输入,减少了不必要的错误。

以上这些自动功能均可通过选择【工具】 → 【选项】 → 【编辑器/编辑器格式】菜单命令进行设置。

2.编码规则与注释

  • 编码规则
  1. 代码输入时可以不区分大小写,由系统自动进行转换。
  2. 在同一行上可以书写多条语句,但语句间必须用“:”(英文冒号)分隔。
  3. 每行的字符最多1024个。为便于阅读和打印,可以将长语句分成多行,但必须在行尾加上续行符(空格再加上下划线“ _ ” ),而且续行符后不能再加注释。
  4. 对数字出了可以默认的十进制表示外,还可以用其他的进制,但是必须加上前缀说明:十六进制用&H(&H9A),八进制&O(如&O76).
  5. 对过程、循环和分支的程序段一般应进行缩排处理,从而便于阅读和调试。
  • 注释
  1. 有利于程序阅读、维护和调试。VB中的注释是以“'”(单引号)开始,如:
  2. 在代码行尾部加,但不能出现在续行符后。
  3. 注释单独为一行或几行,每行前都必须有注释符。
  4. 利用编辑工具栏对某个程序段整个加上注释。方法是先选中需要注释的代码段,单击编辑工具栏中的“块注释”按钮,如要取消注释,只要再单击“取消块注释”按钮即可。

二、数据类型

数据类型关键字类型符前缀占字节数应用
字节型Bytebyt1存储二进制数据,范围较小,不能存放负数
逻辑型Booleanbln2只有True和False两种取值,用于逻辑判断
整型Integer%int2保存整数,取值范围小,用于不带小数的数据
长整型Long&ing4取值范围大于整型,其余同上
单精度型Single!sng4保存浮点实数,运算可能会产生误差
双精度型Double#dbl8取值范围大于单精度型,其余同上
货币型Curency@cur8保存定点实数,主要用于货币计算
日期型Datedtm8保存日期和时间数据
字符型String$str可变保存字符串数据,可分为定长和变长两种
对象型Objectobj4存储32位的地址数据,该地址可引用应用程序中的对象
变体型Variantvnt可变可用保存所有系统定义的数据类型,主要是用作未定义变量的默认数据类型,其数据的处理完全取决于上下文

说明

  1. 用于处理数值的数据最多,共有5种:字节型、整型、长整型、单精度型和双精度型。
  2. 对字符数据类型String而言,一般情况下其种保存的字符串长度是可变的,当然也可以使用定长的字符串。例如:
    Dim Str1 As String        '声明变长字符串
    Dim Str2 As String *20    '声明长度为20的定长字符串

三、常量和变量

1.常量

  • 常量也具有不同的数据类型,不同的数据类型的常量表示形式是不同的。
  • 数值型常量是由正负号、小数点和数字构成。对于十进制数的形式表示与日常使用形式是基本相同,如:123,-45.56。但是对于十进制数应该加上表示进制的前缀 &H&O
  • 字符型常量必须用 "(双引号)括起来。比如:"Visual Basic"、"属性"等。
  • 日期型常量的完整表示形式为“#月/日/年 时:分:秒 AM 或 PM#”,如#07/21/2001#

格式

[Public|Private] Const constname [As type] = expression

  • constname 为常量名称
  • type 为类型
  • expression 为合法的VB表达式。
  • Public|Private 为作用范围,Public为全局常量,Private为模块级常量。

例如:

    Const conPi = 3.14159
    Public Const conUser As String = "Admin"

2.变量

(1)变量的命名 为了便于在程序中加以区分,每个一变量都必须有个唯一的名字,给变量命名时要遵守一下规定:

  1. 必须以字母开头,有字母、数字和下划线构成,长度不超过255个字符,大小写不区分。
  2. 不能与VB的保留字重名,如For、Do、End、Sub等

(2)变量是声明

Dim:Dimension(大小,尺寸;(空间的)维度;范围,规模;方面,部分)

  1. 隐式声明
    Private Sub Form_Load()
        TestToday = Now()
        Debug.Print TestToday
    End Sub
  1. 显式声明
    Private Sub Form_Load()
        Dim str As String
    End Sub

四、运算符与表达式

1.运算符

(1)算术运算符

符号含义示例(a=3)结果
^乘方a ^ 29
-负数-a-3
*a * a9
/10 / a3.333
\整除10 \ a3
Mod取余10 Mod a1
+10 + a13
-a - 10-7

说明:算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则强制转换为数值类型后再运算。

(2)字符串运算符

&(And)

区别示例结果
先将操作数转换成字符,然后再连接12 & 341234
先将操作数转换成字符,然后再连接12 & "ab"12ab

使用时&符号两边需要增加空格

+(加号)

区别示例结果
两者都是字符串,直接连起来"12" + "34"1234
两者都为数字型,算术加法运算12 + 3446
一个为数字字符型,一个为数字型,将字符型转换为数字型,然后算术加法运算"12" + 3446
一个为非数字字符型,一个为数值型,则出错"ab" + 34出错

(3)逻辑运算符

运算符含义说明
Not取反当操作数为假时,结果为真
And两边都为真才是真
Or两边都为假才是假

(4)关系运算符

运算符含义示例结果
=等于"ABCDE" = "ABR"False
大于"ABCED" > "ABR"False
>=大于等于"bc" >= "大小"False
<小于23 < 3False
<=小于等于"23" <= "3"True
<>不等于"abc" <> "ABC"True

(5)ASCII码

image.png

2.表达式

由变量、常量、函数和运算符按一定的规则构成的一个字符序列就是表达式,每个表达式都有一个运算结果,运算结果的类型取决于参与运算的数据类型和运算符。以下是几个典型的表达式实列

    a*b/(c+d)                                                     '算术运算,结果为数值型
    strB$<>"Visual Basic"                                         '关系运算,结果为逻辑型
    intAge<19 And sinTotal > 285 And (kccj1 = 100 Or kccj2 = 100) '综合运算,结果为逻辑型

3.小练习

输入半径r,设定常量pi=3.1414926,根据圆的周长公式L=2 * pi * r,面积公式S = pi * r * r进行计算,并输出。

image.png

五、数组

VB中将具有相同名字、下标值不同的一组变量称为数组变量,简称数组。

数组中每个变量称为数组元素,数组元素的表示方法为:数组名称(s1,s2……)。其中s1,s2等成为下标,只有一个下标的数组称为一维数组,有两个下标的数组称为二维数组。下标只能是整型数。VB中的数组有两种,一种是静态数组,另一种是动态数组。数组必须先声明后使用。数组的声明既可以在模块的声明段声明,也可以在过程中声明。

1.静态数组

所谓静态数组是指数组的维数与下标的范围在声明时已经确定了。声明静态数组使用的语句与声明变量的语句类似。 列如:

    Dim sngCj(45) As String           '声明用于存放学生成绩、具有46个元素的一维数组
    Dim intA(3,4) As Integer          '声明一个二维的整型数组
    Dim Birthday(1 To 10) As Date     'Birthday是一个下标从1到10的Date型数组

2.动态数组

动态数组是指在声明数组时不指明小标大小(省略号中的下标),当需要使用时,再用ReDim语句重新定义其大小。建立动态数组的步骤如下:

  1. 在模块或过程中声明动态数组如下
    Dim intRs() Integer
  1. 在需要使用该数组的过程中分配实际的元素个数。
    ReDim intRs(x+1) 'x是整型变量
  1. 数组的使用 数组在声明后即可以使用,数组的使用主要涉及两方面的问题:一是数组元素的赋值,二是数组元素的访问。实际上这是一个如何访问数组中元素的问题。要访问数组中的元素应该使用如下格式:数组名(下标值)。
    Private Sub Form_click()
        Dim intA(10) As Integer
        Dim i As Integer
        For i = 0 To 10
            intA(i) = 1       '对每个数组元素赋值初始值1
            Print intA(i)     '输出数组元素的值,也即数组元素,将结果输出到当前窗体
            Next i
    End Sub

3.小练习

创建一个大小为5的数组,分别为“班级一”,“班级二”,“班级三”,“班级四”,“班级五”,然后输入编号取出相应的班级。

image.png

思考

1.常用数据类型分别有哪些?

2.如何定义变量和常量?

3.算术运算符有哪一些,分别是什么作用?

4.逻辑运算符有哪一些,分别是什么作用?

5.关系运算符有哪一些?

6.字符串运算符有哪一些?

7.如何定义数组?