-
VB代码不区分带小写,VB会自动转换,把关键字,函数名,对项目属性,方法等首字符大写,其余的小写。如果由多个单子组成,每个单词的手字符大写。
-
注释是单引号
-
一行上可以书写多距语句,语句用
:
分隔,单条语句也可以多行书写,续行符: _
-
窗体和工程是分开保存的?
-
窗体组件的通用属性
- Name
- Caption
- Height
- Width
- Top
- Left
- Font
- Visible 是否可见
- Enabled 是否可用,不可用是灰色的
- ForeColor ,BackColor 前景色,背景色(前景色是文字的颜色,背景色是文字以外的颜色)
- TabIndex 按tab键 控件获取焦点的顺序
-
默认属性,不指定对象属性就可以改变其值的那个属性称为默认属性
一些对象的默认属性- 文本框 Text
- 单选按钮 Value
- 标签 Caption
- 复选框 Value
- 命名按钮 Default
- 图形,图像框 Picture
-
常用函数
- form1.Cls 清除内容
- loadPicture(“路径”) 装载图片函数
- End 退出当前窗体?
- MID 函数 字符串截取函数
- Len函数,取字符串的长度
- IsNumeric(xxx) 判断是否属数字
- VAL(字符串) 字符串转数字
- trim 去空格
- ABS 取绝对值
- asc(C) 把字符装换成 ascII编码
- chr(N) 把ascii编码转换成字符
- cstr(N) 把数值转换成字符串
- Int(N) 向下取整
- LCase(C) 大写转小写
- UCase(C) 小写转大写
- Str(N) 数值转字符串,如果得到是正数 前面会有一个空格
- Val(C) 字符串转数值,如果转换过程中出现不能转换的结果立即返回已经得到的数字结果
- InStr(C1,C2) 在C1中找C2找不到返回) ,找到放回位置,这个下标好像是1开始的
- Left(C,N) 取只付出左边N个字符
- Len(C) 返回字符创长度
- Mid(C,N1,Len) 截取字符创的一段,第三个参数可以不要,表示截取到尾部
- Space(N) f返回N个空格的字符串
- String(N,C) 的到N个C的字符串
- Trim 去出字符创两边的空格
- Now 放回当前时间
- Year(date) 得到年份
- DateAdd(“d”,1,date1) date11天以后得日期
- DateDiff("d",date1,date2) 两个日期相差多少条
- Rnd(N) 随机数,如果N小于等于0那么 生成删词相同的随机数,缺省或者》0就是【0,1)的双精度随机数
- IsNumeric(C) 判断是否是数字
- Shell("xxx.exe",窗口类型) 调用各种应用程序
- 窗口类型 0-4,6 1表示正常窗口
- Print x 打印x 输出到哪里的?立即窗口?
-
定时器控件
-
Dim P$是什么意思? 表示这个变量的类型是货币类型
-
PictureBox 和 Image 控件 有啥区别?
-
不同进制数字表示方式
- 十进制 没有特殊字符开头
- 8进制 "&","&O","&o","&0"开头
- 16进制 “&H”,“&h”
- 二进制呢?
-
VB的Integer(2) 和Long(4) 比java 的小一个级别。
-
Currency 是小数?并且精确到小数后面4为?或者它整数等同于java的Long?
-
Boolean 占2个字节 为什么?
- boolean转数字的时候,0 是 false,-1 是true,
- 数字转Boolean的时候,0是false,非0是true
-
日期是需要 #2024-01-01# 包裹
-
变体型 ,Variant 是所有未什么类似变量的默认类型,实际赋值是啥类型就可以当做啥类型用
-
VB的标识符的最后一个字符可以是类型符(%&!#$@) 什么意思?
%
整型&
长整型 ,&是加在数字的前面的!
单精度#
双精度- $ 货币类型?
- @ 字符串类型?
-
2.3D-4 表示 2.3的10的负4次方
-
VB标识符不区分带小写
-
指定类型的 As 可以省略?
-
指定字符串长度
'指定长度是10 Dim str As String*10
-
VB算数运算符里面有乘方符号2^3,java有没得?
-
VB的关系运算符有 Link 和 Is
- Link ? 或者是Like ? 判断是否匹配,可以判断字符串和带有通配符的字符串是否匹配
*
一个或者多个字符?
一个子杜甫#
代表一个数字
- Is ?
- Link ? 或者是Like ? 判断是否匹配,可以判断字符串和带有通配符的字符串是否匹配
-
逻辑运算符
- And
- Or
- Not
- Xor
-
VB的日期类型可以直接加减
- 日期-日期得到差数天
- 日期+/-数字(天)得到一个日期
-
字符串拼接符是&,并且拼接变量的时候要再前一个和&之间加一个空格,避免被识别为类型符号。
- 建议 & 连接的变量前后都加空格
- 如果前面是的变量是数字类型,不加空格会被认为是长整型类型符号
- 如果后面是数字类型,不加可能会被识别为八进制数(如果后面的数都是0-7组成会被识别为8进制数)
-
+
和&
的区别 + 可以拼接字符串,但是如果两边都是数字就是求和,如果一边是数字一边是字符串,会把字符串转成数字然后求和,如果转化失败就会报错。 -
VB的常用内部函数
-
VB怎么区分等号和赋值号?变量处于最左边就算赋值?,别的时候都算等号?
a=b=c=1的结果大概率是a=false -
a=1:b=1:c=1 是合法的
:
可以分隔一行的对个语句 -
赋值 的时候如果类型不相等,会自动尝试把右边的类型转换成左边的类型赋值
-
value = InPutBox("消息",“标题”,默认值,x,y) 会跳出输入框,用户输入以后可以得到用户输入的数据
-
vbCrLf 等会回车+换行符?
-
MsgBox("提示信息",对话框样式,对话框标题) ,后面2参数可以省略
对话框样式是三个属性的加和决定的(按钮类型,图标类型,默认按钮)
返回值对照表
-
有返回值的方法调用需要加号,没有返回值一定不要加括号,有返回值但是不想用,可以不加括号
-
If 语句如果不写 End If ,那么 Then后面的 执行的语句不能换行,且要和Then一行。(只能有一行?) 加冒号行不?
-
If 的 判定和Then是一起出现的,如果 没有判定就没有Then 比如 Else的时候,后面直接写逻辑块
-
select case 就是 swich case ,能匹配分连续区间和非数吗?
is啥东西?还能写 to ?' is select case xxx Case Is < xxx1 do1 Case Is < xxx2 do2 Case Else do3 End 'to, 在 for i = 1 to 10 也是 to 所以1 to 10 得到的一个集合吗? select case xxx Case 60 To 70 do1 Case 70 To 80 do2 Case Else do3 End
-
Picture.Print 可以直接输出? PictureBox可以输出?单做控台用?
-
Print 模式是打印到窗体上?
-
Do while 的 while 可以不写?
退出循环使用Exit Do
'类似while do Do while 运行条件表达式 xxx? Loop '这种类似 dowhile,先执行一次在判断 Do xxx? Loop while 运行条件表达式
-
Do while 后面是退出条件
-
Option Base 1可以写方法里面?不能
-
使用VB实现选择排序,练习
-
Randomize 啥用?
-
列表框添加元素
- lst1.AddItem("item",index),
- lst1.List属性指向已经添加的元素
- lst1.ListCOunt 元素个数
- lst1.clear 清空
- lst1.Text,选中值是,选种多个呢?
- lst1.ListIndex 选择位置索引,没选是-1
- lst1.removeItem 3 删除指定索引的元素
- 列表框初始化绘制使用时间 load 事件
-
啥意思?
-
不叫括号是变量形式,加了是动态数组形式?
-
Array只能适用于1一维数组,不能用于多维数组
-
for next 和 for each
Dim array1(10) as Integer array1 = Array(1,2,3,4,5,6,7,8,9,10) ' 循环的是下标 For i 1 to 10 Setp 1 MsgBox i Next i End For ' for each 只能遍历数组,并且不需要指定初始,终值,和步长,循环的是元素 ' i必须要是变体类型?确定的Integer类型不行? ' Next 后面的循环变量可以省略,普通For的不能吗? For Each i In array1 MsgBox i Next End For
-
Print x输出的结果会换行,Print x:输出的结果是空格分隔而不是换行?原理是啥?
-
Option base 1 的时候,数组的下标0会有默认值?如果是Integer 默认值是0?这样数组长度是不是变成11了?
-
获取数组的下边界和上边界的方法
- LBound(数组名,第几维) 获取下边界,如果是数组只有一位可以省略默认是1
- UBound(数组名,第几维) 获取上边界,如果是数组只有一位可以省略默认是1
-
变体型是申明的时候不指定类型,动态数组是申明的时候不指定数组长度(使用前需要通过ReDim要明确的指定)
ReDim 可以省略申明类型,但是不能改变申明类型。如果只在过程内生命并引用,可以直接ReDim,省略第一步的什么动态数组,但是不能改变数组维度。
Remid只能改变最后一维的下标和上标?也就是只能改变最后一个维度的size?第一次ReDim可以指定多维数组,但是第二次只能修改最后一维度?
'申明动态数组,没有指定长度,知识后动态数组是不能使用的,因为还没有分配内存空间 Dim array1() as Integer '使用前的时候重申明长度 ReDim array1(1 to 10) '可以再次调整,这就是用处了 ReDim array1(1 to 50) '可以通过Preserve保留历史数组 ReDim Preserve array1(1 to 20)
-
数组的下标可以是负数?
- 数组下标如果是小数会按照奇进偶不进的原则取整,在四舍,5入不入看整数位是基数还是偶数。
- 2.5 取2,3.5 取4
-
Public,Private,Statitc
- Public 可以被所有模块调用 ,在模块里面的变量可以声明为 public,表示工程级别有效,过程默认都是public的?方法是否默认是public的?
- Private 只能本本模块内的方法调用,模块里面的变量默认就是private,
- Statitc 过程内有效,变成模块内有效
-
控件数组
- 控件数组,名字一样就会是出于控件数组?复制张贴也会出是否创建控件数组的提示?VBA是没有的,名字不能重复。
- 控件数组共享事件,他们由index下标区分是那个控件的,事件会多一个Index的参数。
- 控件数组可以通过 Load 和Unload 添加和删除
- Unload ,不能删除设计模式下建立的控件,只能删除Load创建的?
- 用程序构建控件数组,可以创建控件数组,然后把index设置为0,这样它就是空间数组了。
- 用程序怎么构建控件 New 控件名字?
-
过程分类
-
系统提供的过程
- 内部函数
- 事件过程,需要通过编写指定命名规则的事件函数实现,事件过程和对象绑定
-
用户自定义过程
-
Sub 没有返回值
-
Function 有返回值
-
property 定义属性 是get/set方法的前身?
Public Static Property Get A() As Variant End Property Public Static Property Let A(ByVal vNewValue As Variant) End Property
-
Event 定义事件
-
-
-
sub的调用过程,和VBA的有点不一样
-
应用程序结构
工程组文件.vbg文件在哪里?
-
函数过程的定义
需要注意函数返回值类型定义方式和函数返回方式- 函数返回类型定义通过 方法头上面加 As Type来决定的
- 方法名字 = 返回值 来指定返回值
- 函数过程必须有返回值
Function sum(a As Integer,b As Integer) as Integer '这个不是返回只是个返回值赋值,可以有多次?后面的代码也会执行? sum = a+b Eed Function '定义参数传递方式,默认是ByVal Function sum2(ByVal a As Integer,ByRef b As Integer) as Integer '这个不是返回只是个返回值赋值,可以有多次?后面的代码也会执行? sum = a+b Eed Function
-
其实子过程也能有返回值,可以用入参的方式,ByRef
Sub sum(a As Integer,b As Integer,ByRef c As Integer) as Integer c = a+b Eed Sub
-
变量作用域
(全局)工程级变量>模块级别>(局部变量)过程级别
static 修饰的也是局部变量?
-
全局变量
-
调用函数或者子过程可以用 Call ,但是没啥必要非要这么用把?
-
常用函数
-
数学
-
装换
-
常用字符串函数
-
日期函数
-
其他函数
-
-
组合框的属性
0,2 有什么区别?
-
总结所有控件的属性和事件
-
VB 控件风格怎么使用win7或者win10 的风格?