VB学习简单笔记
Visual Basic 编程基础与开发环境
基于VB学习笔记整理
一、VB集成开发环境
VB IDE主要组成部分
- 标题栏:显示当前项目和窗体名称
- 菜单栏:包含文件、编辑、视图、工程等菜单
- 工具栏:常用命令的快捷按钮
- 工具箱:左侧是控件所在的工具箱
- 窗口设计器:中间部分为窗体设计区域
- 右侧三个面板:
- 工程资源管理器:管理应用程序中的所有文件,顶部有三个按钮:查看代码、查看对象、切换文件夹
- 属性窗口:设置对象的属性和对应的属性值,如Caption改变标题或按钮名称
- 窗体布局窗口:显示、调整窗体在屏幕中的位置
二、VB对象
对象基本概念
- 常见对象:窗体和控件
- 属性:对象的特殊性质
- 方法:对象的行为方式
- 对象的分类:
- 预定义对象(系统自带)
- 自定义对象(用户自己定义)
- 创建对象的步骤:添加对象 → 设置属性 → 为该对象创建事件
- 属性设置的方法:
- 一般属性:属性窗口里直接设置
- 复杂属性:编写代码设置
- 对象的位置:&HBBGGRR(十六进制颜色表示)
- 窗体背景:BackColor属性
- 对象的命名规则:对象名 = 前缀 + 自定义名称(如:cmd_B)
作业示例:窗体背景色切换
在窗体上添加三个按钮,分别为红色、绿色、蓝色,单击按钮将窗体背景设置成名称提示的颜色
步骤:
- 双击控件面板上的命令按钮(CommandButton),复制粘贴出2个同样大小的按钮
- 在属性窗口设置Caption属性为”蓝色”,命名为cmd_B;同样的步骤设置第二个为”绿色”,命名为cmd_G;设置第三个为”红色”,命名为cmd_R
- 编写代码:
Private Sub cmd_B_Click() Form1.BackColor = &HFF0000 End Sub Private Sub cmd_G_Click() Form1.BackColor = &HCOO08 End Sub Private Sub cmd_R_Click() Form1.BackColor = &HFF8 End Sub
三、窗体
窗体结构
- 工具—选项—通用—网格单位:一个像素等于15线,可设置高度和宽度
- 添加新的窗体方法:
- 工程里添加
- 在右侧工程里单击右键,选择添加窗体
窗体属性
窗体边框:BorderStyle属性
|
属性值 |
说明 |
|
0 – None |
没有边框,无边界框架,没有标题部分 |
|
1 – FixedSingle |
固定单边框,大小不任意改变,只能最大化和最小化的窗口 |
|
2 – Sizable |
可调节边框,可任意改变大小的窗口 |
|
3 – FixedDialog |
固定对话框,不能最大及最小化 |
|
4 – FixedToolWindow |
Windows工具窗口,不能改变尺寸 |
|
5 – Sizable ToolWindow |
Windows工具窗口,能改变尺寸 |
窗体距离与可见性
- Width:宽度
- Height:高度
- Top:顶端距离
- Left:左侧距离
- Visible:可见性(False/True 隐藏/可见)
- Enable:可用性(False/True 不可用/可用)
主要窗体事件
常用事件示例
(1) Click 单击事件
Private Sub Form_Click() Form1.Print “你好你好” End Sub
(2) DbClick 双击事件
Private Sub Form_DbClick() Form1.BackColor = Form1.BackColor + 252525 End Sub
(3) Load 载入事件
Private Sub Form_Load() Form1.Width = 3000 End Sub
四、控件
控件的种类
- 内部控件:左侧工具箱中显示的控件
- 可插入对象:外部应用程序对象
- ActiveX控件:可添加控件(工程→部件→控件)
常用控件介绍
CommandButton控件
- 作为按钮进行使用
- Shift+方向键左右键:可改变控件宽度
- Shift+方向键上下键:可改变控件高度
Label控件
- 为文本框、列表框、组合框等控件添加描述性的标签
- Font属性:点击Font属性右侧框中按钮,在出现的对话框中选择改变文字大小、字体
- BackColor属性:可改变label控件的背景颜色
- BackStyle属性:0透明,无论将背景设置成什么颜色,都不会显示;1不透明
- BorderStyle属性:0无边框;1有边框,单边有凹凸感的样式
- Caption属性:在右侧栏中输入文字,即可改变label控件的名称
- AutoSize属性:自动适应文本框大小。只想在一行使用
- WordWrap属性:选择True,自动换行
- Alignment属性:文本对齐 0-left左对齐、1-right右对齐、2-cent居中对齐
TextBox文本框控件
- 可编辑的文本框
- Text属性:后面为空(密码)或者输入名称(用户名)
- ForeColor属性:文本和图形的前景色
- PasswordChar属性:如输入密码时是不可见的,可在本属性对应后添加字符,如*
- MaxLength属性:可以输入字符的最大数,如输入密码只能6位,就输入6
- Multiline属性:多行显示文本(True自动切换到下一行)
五、VB书写规则
- 不区分大小写,可自动转换代码大小写
- 标点符号为英文
- 一条语句长度不应超过1023个字符
- 输入语句应一行一句。要将多条语句写在一行中,语句间用:冒号分割
‘ 示例:多条语句写在一行 Private Sub Form_Click() Print “VB语句”: Print “VB语句应一行一句” End Sub
- 若一行中写不下一条语句,可分写在多行中,行尾加_(空格下划线)
‘ 示例:长语句分行 Print “VB语句”: Print _ “VB语句应一行一句”
六、赋值语句
- 对象.属性 = <表达式>
Private Sub Form_Load() Form1.Caption = “欢迎窗口” End Sub
- 变量 = 值 → 目标操作符 = 源操作符
七、注释语句
- 在代码前添加单引号加文字说明:’ 窗体高度
- 另起一行输入:Rem 窗体高度
八、暂停及结束语句
暂停语句:Stop
- 不关闭任何文件或清除变量,程序走到这里就暂停执行了
Private Sub Form_Load() Form1.Caption = “欢迎窗口” Stop Form1.BackColor = &HFF& End Sub
- 但如果在exe文件中包含有stop,则会关闭所有文件并退出
结束语句:End
- 可放在过程中的任何位置
- 作用是关闭代码;关闭使用OPEN打开的文件
- 与exit的区别:exit不说明代码语句的终止,只是从相应的代码段退出
九、VB开发步骤
编程流程
编程 → 调试 → 改错 → 运行
- 建立可视化用户界面
- 设置对象属性
- 编写代码
- 生成可执行文件
十、数据类型
基本数据类型
1. 数值型
- 整数型:整型(Integer,类型符%)、长整型(Long,&)
- 浮点数:单精度型(Single,!)、双精度型(Double,#)
2. 字符串型(String,类型符$)
- 变长:长度不确定 0-2~31
- 定长:个数确定 0-2~16
字符串是一个字符序列,必须用双引号括起来。长度为零的字符串称为空字符串,即””。
3. 货币型(Currency,类型符@)
如:10.11@
4. 日期型(Date)
日期和时间必须被放置在一对#号之间,如#02/14/2020 10:10:10#
5. 变体型(Variant)
字符变体和数值变体。Variant可存储系统定义的所有数据类型,如一个变量声明时没有说明类型,默认就是变体类型。
变量声明
设置默认数据类型
‘ 本语句中只声明了z为整型,x和y默认为变体类型 Dim x, y, z as integer ‘ 精确声明了x y z的类型 Dim x as integer, y as integer, z as integer
模块语句DefType
定义某一范围内的变量属于哪种类型
DefInt X-Z ‘ 以X,Y,Z开头的变量都被看做整型 DefStr A-C ‘ 以A,B,C开头的变量都被看做字符串型 Private Sub Form_Click() Print “x=” & x Print “y=” & y Print “z=” & z End Sub Private Sub Form_Load() Dim x, y, z Dim a, b, c End Sub
执行结果为:x=0, y=0, z=0
系统内部变量
常量
值不会发生改变的量,是对应的一块内存地址
- 系统常量:视图-对象浏览器中
Private Sub Form_Load() Form1.BackColor = vbYellow End Sub
- 自定义常量:
- 文字常量:字符串常量、数值常量
- 符号常量:用定义的符号来代替数值或字符串
Const vbBlue = 16711680 ‘ (&HFF0000) Const PI = 3.14 ‘ 多处调到同一个数值,就将其定义为一个常量
自动变量及静态变量
1. 变量
- 程序运行过程中会发生改变的量,内存分配的一块命名空间
- VB使用变量来存储数据和值,变量数据类型决定了变量以何种形式来存储数据
2. 变量的定义:Declare 变量名 as 类型
Declare包括:Dim自动变量、Static静态变量、Redim、Public、Private
Private Sub Form_Click() Dim x As Integer ‘ 自动变量 Static y As Integer ‘ 静态变量 x = x + 1 y = y + 1 Print “x=”; x, “y=”; y End Sub
注意:静态变量会保留上一次运行的结果
3. 变量命名规则
- 只能由字母、数字、下划线组成,长度不能超过255个字符
- 第一个字符只能是英文字母
- 不区分大小写
- 不能使用保留字
4. 变量的作用域
- 局部变量:只有过程内部代码才能访问或改变该变量的值(Dim/Static)
- 模块变量:窗体变量(可用于窗体内的所有过程)和标准模块变量
- 声明位置:模块的声明部分
- 用Dim和Private定义
- 全局变量:Public和Global
- 声明位置:标准模块的声明部分
- 示例:Public sr As String
示例:学生信息记录
‘ 自定义数据类型 Type data_student name As String sge As Integer sex As String End Type Private Sub Form_Load() Dim stul As data_student stul.name = “张小兰” stul.sge = 18 stul.sex = “女” Text1.Text = stul.name Text2.Text = stul.sge Text3.Text = stul.sex End Sub
Form1
学生姓名: 张小兰
年龄: 18
性别: 女
十五、函数
(一)常用内部函数
- 数学函数
函数的一般格式:函数名(参数表)
多个参数:函数名(参数, 参数, 参数)
函数调用:X = int(3.7)
- 转换函数
- 取整函数:Int(x) – 返回小于等于自变量X的最大整数部分
- Fix(x) – 返回值为大于等于自变量X的整数部分
‘ 示例: Print Int(8.4) ‘ 结果为8 Print Fix(8.4) ‘ 结果为8 Print Int(-8.4) ‘ 结果为-9 Print Fix(-8.4) ‘ 结果为-8
(二)删除空白字符的函数
|
函数 |
说明 |
示例 |
结果 |
|
LTrim$(s) |
删除左侧空白 |
Print LTrim(” vb学习中”) |
“vb学习中” |
|
RTrim$(s) |
删除右侧空白 |
Print RTrim(“vb学习中 “) |
“vb学习中” |
|
Trim$(s) |
删除两边空白 |
Print Trim(” vb学习中 “) |
“vb学习中” |
(三)字符串截取函数
|
函数 |
说明 |
示例(身份证号码) |
|
Left(s, n) |
左侧N个字符 |
取前6位(地区码) |
|
Right(s, n) |
右侧N个字符 |
取后4位(顺序码) |
|
Mid(s, n1, n2) |
中间N个字符 |
Mid(s, 7, 8)取生日 |
(四)String函数和Space函数
‘ 1. String:生成由N个同一字符组成的字符串 Print String(10, “*”) ‘ 输出:********** ‘ 2. Space:生成由N个空格组成的字符串 Print “a”; Space(5); “b”; Space(5); “c” ‘ 输出:a b c
(五)字符大小写转换
‘ UCase(s):小写转大写 ‘ LCase(s):大写转小写 Private Sub Command1_Click() a = Text1.Text Text1.Text = UCase(a) ‘ 转大写 End Sub Private Sub Command2_Click() a = Text1.Text Text1.Text = LCase(a) ‘ 转小写 End Sub
大小写转换示例
请输入字母: AAA
转大写 转小写
(六)查找匹配字符
‘ InStr(s1, s2):在字符串s1中查找s2的位置 ‘ 返回的是数值,找不到返回0 Private Sub Command1_Click() a = Label1.Caption Label2.Caption = InStr(a, “vb”) ‘ 查找”vb”的位置 End Sub
(七)ASCII码转换
‘ Asc(s):返回字符串首字母的ASCII码值 ‘ Chr(n):返回n对应的字符 Private Sub Command1_Click() str1 = Text1.Text str2 = Asc(str1) ‘ 获取ASCII码值 Label3.Caption = “字母” & str1 & “的ASCII码值为:” & str2 End Sub Private Sub Command2_Click() str1 = Text2.Text str2 = Chr(str1) ‘ 获取对应字符 Label4.Caption = “ASCII码值” & str1 & “对应的字母为:” & str2 End Sub
十六、VB的字符处理机制
- 早期ANSI:采用单字节处理,英文占1个字节,汉字占2个字节
Print Len(StrConv(“vb程序设计”, vbFromUnicode)) ‘ 结果为5 Print LenB(StrConv(“vb程序设计”, vbFromUnicode)) ‘ 结果为10
- VB 4.0以后:使用Unicode大字符编码,所有字符都占有2个字节,2个字节为一个字符
Print Len(“vb程序设计”) ‘ 结果为6 Print LenB(“vb程序设计”) ‘ 结果为12
- 可使用StrConv来转换字符串的格式
- 求字符串长度:Len(s)
十七、运算符
- 算术运算符
|
优先级 |
运算符 |
说明 |
举例 |
|
1 |
^ |
指数运算符 |
6^2 = 36 |
|
2 |
– |
负号运算符 |
-5 |
|
3 |
*, / |
乘法和除法运算符 |
5*6 = 30 |
|
4 |
整除运算符 |
103 = 3 |
|
|
5 |
Mod |
取余运算符 |
10 Mod 3 = 1 |
|
6 |
+, – |
加法和减法运算符 |
5+4 = 9 |
- 连接运算符
“+”和”&”将两个字符串连接起来。
- 关系运算符
|
运算符 |
说明 |
返回值示例 |
|
= |
是否相等 |
5=5 → True |
|
<> 或 >< |
是否不相等 |
5<>3 → True |
|
>, >=, <=, < |
大于、大于等于、小于等于、小于 |
5>3 → True |
|
Is |
两边的引用是否相同 |
– |
|
Like |
左右字符串是否匹配 |
“abc” Like “a*” → True |
运算符的优先级
表达式的执行顺序:函数运算 → 算术运算 → 关系运算 → 逻辑运算
运算符的使用规则:
- 使用圆括号可改变运算符的优先顺序
- 当乘号(*)与负号(-)相邻时,负号优先
- 一般情况下,不允许两个运算符相邻(除乘号与负号),应当用括号隔开
- 函数名也是Visual Basic的关键字
常用算术函数
|
函数 |
格式 |
功能 |
|
绝对值函数 |
Abs(数值表达式) |
返回数值表达式的绝对值 |
|
符号函数 |
Sgn(数值表达式) |
返回数值表达式的符号(正:1, 零:0, 负:-1) |
|
平方根函数 |
Sqr(数值表达式) |
根据给定的正数,求出平方根 |
|
指数函数 |
Exp(数值表达式) |
求自然指数函数ex的值 |
|
对数函数 |
Log(数值表达式) |
求自然对数函数,Exp()的逆运算 |
|
随机函数 |
Rnd[数值表达式] |
产生一个(0,1)区间内的随机数 |
|
四舍五入函数 |
Round[数值表达式] |
对数值表达式进行四舍五入 |
|
正弦函数 |
Sin(数值表达式) |
求正弦值,参数的单位是弧度 |
|
余弦函数 |
Cos(数值表达式) |
求余弦值,参数的单位是弧度 |
|
正切函数 |
Tan(数值表达式) |
求正切值,参数的单位是弧度 |
|
反正切函数 |
Atn(数值表达式) |
求反正切值,返回主值区间的弧度值 |
十八、数据输出Print方法
‘ 格式:{对象名}.Print{表达式}; ‘ 对象名:窗体、立即窗口、图片框或打印机等(默认为当前窗体) ‘ 表达式:数值或字符串(缺省情况会输出一行空格) ‘ 逗号:标准输出格式(分区输出) ‘ 分号/空格:紧凑输出格式
其他相关方法:
- Cls方法:清除Print方法显示的文本 对象名.Cls
- Show方法:显示对象 对象名.Show
- AutoRedraw属性:是否重绘对象 对象名.AutoRedraw = True
- Move方法:移动窗体或控件 对象名.Move 左, 上, 宽, 高
输出位置控制:
- Tab函数:Tab(n)将光标移到参数n指定的位置开始输出
- Spc函数:Spc(n)跳过n个空格
- Space$(n)函数:跳过n个空格,可参与计算
Private Sub Form_Click() Print Tab(10); “VB”; Spc(5); “编程语言” Print Tab(10); “VB” & Space$(5) & “编程语言” End Sub ‘ 输出结果: ‘ VB 编程语言 ‘ VB 编程语言
InputBox函数
产生一个对话框,作为输入数据的界面,并返回输入的内容
InputBox(提示信息, 对话框标题, 输入框中的默认信息, 与屏幕左边的距离, 与屏幕上边界的距离, 帮助文件的名字, 相关帮助主题的目录号)
格式输出Format函数
专门用于将数值、日期和字符串数据按指定格式输出
Print Format(55, ” ##.0″) ‘ 55.0 Print Format(55.6789, ” ##.##”) ‘ 55.68 Print Format(55, ” ##.##”) ‘ 55. Print Format(0.56, ” ##%”) ‘ 56% Print Format(56789.40, ” ##,###.#00″) ‘ 56,789.40 Print Format(56789.40, ” ##,###.##”) ‘ 56,789.4 Print Format(56789.4, ” $##,###.#0″) ‘ $56,789.40 Print Format(55, ” +##”) ‘ +55
格式控制字符:
|
字符 |
意义 |
|
0 |
显示一数字,若此位置没有数字则补0 |
|
# |
显示一数字,若此位置没有数字则不显示 |
|
% |
数字乘以100后再在右边加上”%”号 |
|
. |
小数点 |
|
, |
千位的分隔符 |
|
– + $ ( ) |
这些字符出现在格式字符串中将原样输出 |
本笔记基于VB学习资料整理,涵盖VB集成开发环境、基础语法、控件使用、函数和运算符等内容
适用于Visual Basic初学者和复习者