1、VB不区分大小写
2、没有多行注释
3、遇到第一个End Sub、Exit Sub或Return语句结束
4、Sub是一个没有返回值的函数(方法),但不影响他带参。其过程叫做子程序过程或Sub过程
5、Function是有返回值的函数(方法)。其过程叫做函数过程或Function过程
6、Type就是数据类型,用户自定义类型
7、访问性可以是Public、Protected、Friend、Protected Friend、Private
8、如果一行放不下,需要中间换行,则在需要换行的地方,加上 空格
+ _
两个字符,然后回车即可
Type … End Type
'Type ... End Type
Type TSenderParam '创建用户自定义的类型TSenderParam
devParam As TDeviceParam '通讯参数
wmHandle As Long '应用程序用于接收应答消息的窗体句柄
wmMessage As Long '窗体的消息值
wmLParam As Long '消息返回时的LParam参数
notifyMode As Long '发送过程的消息处理模式
End Type
Sub … End Sub
'Sub ... End Sub
private sub command1_click() '构建
dim a as string '声明String类型的变量
a="abc" '赋值
print a '输出
end sub '结束
For
'Show >> `For` >> `Next` >> MsgBox >> End Sub|Function
Sub forNext()
Dim i%, j% '`%`相当于 as Integer
For i = 1 To 100 '以指定次数来重复执行语句,且自带计数器。
j = j + i
Next
MsgBox j
End Sub
Sub forEachTotal()
Dim i%
For i = 2 To 10
Sheet2.Cells(i, 3) = Sheet2.Cells(i, 2) * Sheet2.Cells(i, 1)
Next '下一个,作用是让循环继续运行
End Sub
Private Sub Form_Load()
Dim k As Integer
Show '对于print事件,如果我们没有命令按钮等控件,为了在窗体上显示我们所需要的内容,我们需要加一个show
For k = 2 To 10 Step 2
Print k * k
Next k
End Sub
'For i=1 to 10 '循环初始条件 和循环结束语句
'print i
'next i '循环条件,判断是否继续循环
'for 条件
' 执行for之间的语句
'next 再来一次 跳到for处 判断条件,成立就会再执行语句
'第三种情况 就是告诉编译器,遇到错误 继续执行下一句
Declare
Declare Function LED_GetBright Lib "TypeTaSed.dll" (Param As TypeTaSed) As Long
' Public Declare Function 函数名 Lib "API DLL文件名" (参数) 返回值
Declare Function outpot Lib "c:\zzf\mydll" Alias "OUTDATA" (ByVal addr1%, ByVal odata%) As Integer
' 首先必须要有特殊的声明,用Declare声明语句在窗体级或模块级或全局模块的代码声明段进行声明,将DLL中的函数声明到VB中
' Declare Sub 过程名Lib [ Alias " 别名]([ByVal 参数AS类型]),
' Declare Function函数名Lib [Alias " 别名]([ByVal 参数AS类型])
' [Public | Private] Declare Function *name Lib *libname Alias *aliasname
' Public /Private ,可选的,用于声明是公开的还是只能在包含该声明的模块中使用的过程
' Decalare /Sub, 二选一,Sub表示该过程没有返回值。Function表示该过程会返回一个可用于表达式的值
' name, 必需的,任何合法的过程名,注意DLL的入口处(entry points)区分大小写
' Lib, 必需的,知名包含所声明过程的DLL或代码资源
' Alias ,可选的,表示将被调用的过程在DLL中还有另外的名称,当外部过程名与某个关键字重名时,可以使用别名。当DLL的过程与通一范围内的公用变量、常数或任何其他过程的名称相同时,也可以使用Alias。
' 如果该DLL过程中某个字符不符合DLL的命名约定时,也可以使用Alias
'Byte Boolean Integer Long Currency Single Double Decimal目前尚不支持
'Date String只支持变长 Variant 用户定义类型 对象类型
C和VB的比较 | ||
比较 | C | VB |
基本数据类型 | int \ long \ int \ float \ double \ bool(0:False,Other:True) \ char \ 指针 | Byte \ Integer \ Long \ Single \ Double \ Boolean \ Date \ String \ Variant |
字符串 | 字符以单引号(' ')括住 字符串以双引号(" ")括住,以’\0’结束 |
以双引号(" ")括住 |
变量定义 | 数据类型名称 变量名称 (区分大小写) int i, j; |
Dim 变量名称 AS 数据型态名称(大小写不分) Dim i, j AS Integer |
数组 | 数据型态名称 变量名称[数组大小] 指针从0开始,元素个数=数组大小 |
Dim 数组名(数组下限,数组上限) AS 数据型态名称 指针从0开始,元素个数=数组上限-数组下限+1 |
语句结尾 | 以分号;表示语句结束 | 无 |
不等于 | a!=0 | a<>0 |
批注 | /* */ | REM或 ' 开头 |
常量 | const double PI = 3.1415926273948 | DIM Const PI = 3.1415926273948 |
算术运算符 | +, -, *, /, %, (modulo), ++, -- | +, -, *, /, \, Mod(modulo), 基数 次方(exponent) |
逻辑运算符 | $$ || ! | AND | OR | NOT | Xor |
字符串连接 | 无,靠外部函数 1、sprintf(string,"%s%s",string1,string2) 2、strcat(string1,string2) |
& + |
跳出循环语句 | break | Exit Do、Exit For |
IF语句 | if(逻辑表达式){ 复合语句 }else{ 复合语句 } |
IF(逻辑表达式) Then 复合语句 Elseif (逻辑表达式) Then 复合语句 Else 复合语句 End IF |
FOR语句 | for(循环条件初始化; 逻辑表达式; 循环重复语句){ 复合语句 } |
For 循环变量=起始值 To 终止值 复合语句 Next 循环变量 |
FOR IN语句 | 无 | ForEach 变量 In 对象或数组 复合语句 Next |
WHILE语句 | while(逻辑表达式){ 复合语句 } |
Do While 逻辑表达式 复合语句 Loop |
UNTIL语句 | do{ 复合语句 } while (逻辑表达式) |
Do 复合语句 Loop Until 逻辑表达式 |
SELECT语句 | switch(表达式){ case 表达式: 复合语句 break; case 表达式: 复合语句 break; default: 复合语句 } |
Select Case 表达式 Case 表达式 复合语句 Case 表达式 复合语句 Case Else 复合语句 End Select |
Function | 数据型态 函数名称(数据型态 参数名称){ 复合语句 return(传回值); } |
Function 函数名称(参数名称 As 数据型态) AS 数据型态 复合语句 函数名称 = 传回值 End Function |
引用其他程序 | #include 程序标头路径 | Imports 命名空间.类别名称 |
Sub Procedure | void 子程序名称(数据型态 参数名称){ 复合语句 } |
Sub 子程序名称(参数名称 AS 数据型态) 复合语句 End Sub |
自定义数据类型 | 结构体 | 类别型态 Class 类别名称 Inherit 父类别名称 Implements 接口名称 方法或属性定义语句 End Class |
工程文件 | |||
扩展名 | 描述 | 扩展名 | 描述 |
.bas | 基本模块 | .frm | 窗体文件 |
.cls | 类模块 | .frx | 二进制窗体文件 |
.res | 资源文件 | .vbp | Visual Basic 工程文件 |
.ctx | 用户控件的二进制文件 | .pgx | 二进制属性页文件 |
.dca | 活动的设计器的高速缓存 | .ctl | 用户控件文件 |
.ddf | 打包和展开向导 CAB 信息文件 | .tlb | 远程自动化类型库文件 |
.dep | 打包和展开向导从属文件 | .vbg | Visual Basic 组工程文件 |
.dob | ActiveX 文档窗体文件 | .vbl | 控件许可文件 |
.dox | ActiveX 文档二进制窗体文件 | .dws | 部署向导脚本文件 |
.dsr | 活动的设计器文件 | .vbr | 远程自动化注册文件 |
.dsx | 活动的设计器的二进制文件 | .vbw | Visual Basic 工程工作空间文件 |
.log | 加载错误的日志文件 | .vbz | 向导发射文件 |
.oca | 控件类型库缓存文件 | .wct | WebClass HTML 模板 |
.pag | 属性页文件 |
扩展描述 | |
扩展名 | 描述 |
.dll | 运行中的 ActiveX 部件 |
.exe | 可执行文件或 ActiveX 部件 |
.ocx | ActiveX 控件 |
.vbd | ActiveX 文档状态文件 |
.wct | WebClass HTML 模板 |
对象类型 | |
示例 | 描述 |
命令按钮 | 窗体上的控件,象命令按钮和框架,它们都是对象。 |
窗体 | Visual Basic 工程中的每一个窗体都是独立的对象。 |
数据库 | 数据库是对象,并且还包含其他对象,如字段、索引等。 |
图表 | Microsoft Excel 中的图表是对象。 |
概念 | |
事件(Event) | Private Sub对象名_事件名 (事件内容) End Sub |
方法(Method) | 对象名.方法名 |