vb语言基础-()_第1页
vb语言基础-()_第2页
vb语言基础-()_第3页
vb语言基础-()_第4页
vb语言基础-()_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

袅VB语言基础薁一、数据类型膁1、数值型:取值范围:蚈Byte(字节型)占1字节;0255无符号薄Integer(整型)占2字节;-3276832767蚁long(长整型)占4字节;芈single(单精度浮点)占4字节;略肆Double(双精度浮点)占4字节;略莃Currency(货币型)占8字节小数点左15位,右4位螁(精确定点数据类型)虿2、逻辑型:螇Boolean(布尔型)占2字节;true或false莆3、字符串型:袁String?a?a定长型占字符串长度,变长型再加10聿4、日期型:芅Date(日期型)占8字节100-1-19999-12-31膄5、对象型:羁Object占4字节;任何Object引用薀6、变体型:羇Variant变体型数字占16字节,变体型字符占22字节字符串长羃注:此类型还包含三种特定值:肁Empty;Null;Error; 羁7、用户定义的数据类型: 蒅用户可以利用Type语句定义自己的数据类型。格式如下 羆Type数据类型名 膀数据类型元素名As类型名 肈 膇EndType 螅用Type可定义类似于C语言中的结构体类型。例如: 膀TypeDate_Rec 葿RYearAsInteger 衿RMonthAsString*3 蒄RDayAsInteger 芀EndType 袀注:记录类型中的元素可以是字符串,但必须是定长字符串,其长度由类型名加上一个星号和常数指明。 芇数据类型转换函数: 芃函数名及书写格式转换结果 莀CBool(表达式)布尔型 芁CCur(表达式)货币型 聿CByte(表达式)字节型 芆CDate(表达式)日期型 蒀CDbl(表达式)双精度 莈CSng(表达式)单精度 蒆CInt(表达式)整型 肅CLng(表达式)长整型 薀CStr(表达式)字符串 螈Cvar(表达式)变体型 膈二变量 袃1变量名V中变量的命名遵从标识符命名原则:必须以字母开头;变量中间不能有空格;不能使用VB关键字; 袄2变量的声明VB允许使用不声明的变量,即一个变量未经声明就可以在程序中使用。这种变量使用方式称为隐含变量声明。(使用隐含变量时,VB会自动创建变量,并赋予它变体类型。在为其指定值之前,其值为Empty,当为它赋值后,会采用所赋值的类型作为自己的类型。) 腿显式声明: 蚆用类型说明符:将类型说明符加在变量名的尾部; 袆定义变量时指定其类型: 羄格式:Declare变量名As类型名 薀其中的Declare可以是Dim,Static,Redim,Public中之一 莈用Deftype语句:Deftype字母范围 蚅这里的Type是类型标志,Def是系统保留字,它们之间没有空格。例如:DefIntD-J 肄该定义声明了D、E、F、G、H、I、J都是整型变量,而且以这些字母开头的变量名也都是整型变量。 羁类型说明符: 袆:整型; 莄&:长整型; 膃!:单精度浮点型; 膈#:双精度浮点型; 薈:货币型; 膃$:字符串型; 芃字节、布尔、日期、对象及变体型没有类型说明符。 蕿注意: 羆Dima,b,cAsInteger是错误的。只有c被声明成Integer,而a,b缺省为Variant类型。 芆如果使用DimxAsInteger语句声明了变量x为Integer,而在后面又使用带有类型说明符的该变量,如x$,x!,x和x#,程序运行时就会产生“duplicatedefinition”错误。 莃使用不带As的Dim语句,会被声明成变体类型的变量。 羀通过不带长度说明的字符串声明语句可以声明变长字符串。 蚈对于声明布尔型的变量,其缺省值为False; 羅为声明为Date类型的变量赋值时,日期值应放在一对#之间,且多种日期和时间格式在VB中都是有效的。 莃3变量的作用域和生存期: 莁变量的作用域指变量的有效作用范围,也就是变量可以被访问的范围。按以下三种方式来定义变量的作用范围: 膅范围说明 螄过程在过程内使用Dim或Static 蒃私有在模块开头加上Dim或Private 蒇公共在模块开头加上Public 袇变量的生存期指VB保存该变量值的时间,是变量在整个程序运行过程中的有效生存时间薂1)过程层变量过程层变量是指在过程或函数内部定义的变量,这种变量无论是用Dim还是Static声明,其作用域都只是该过程或函数体,在过程或函数外不能引用;薃2)窗体层变量窗体层变量是指在窗体的通用部分声明的变量,即不是在任何一个窗体内的过程或函数中声明的变量。它的作用范围至少是窗体的存在范围,也就是说在窗体内的每个过程或函数中都可以使用窗体层变量。 袈窗体层变量的声明有三种方式: 莅用Dim语句声明。 薅用Private语句声明。 蚃用Public语句声明。 艿对于用Dim和Private声明的窗体层变量,其作用范围都是在所声明的窗体范围内。用Public声明的窗体层变量作为窗体公用数据成员,可以在其他窗体或模块中以“窗体名.变量”方式引用。其作用可以大于当前窗体范围。窗体层变量在本窗体所有过程中都是可见的。 肇3)模块层变量模块(Module)是构成VB工程(Project)的一部分,是包含数据和过程的集合。定义模块层变量只需在模块的通用部分加入Dim,Private,Global或Public等声明语句即可。用Dim和Private声明的模块层变量作用域为所在模块范围,而用Public和Global定义的模块层变量则可以全局使用。 莄注:全局变量必须用Public或Global声明,不能用Dim 螃三常量 蚀常量是一个有意义的名字,用来表示程序运行时不变的数值和字符串。 蒅VisualBasic中的常量分为文字常量和符号常量两种,文字常量又可分为数字常量和字符串常量。 肃符号常量(自定义常量):在程序中程序员用Const声明的常量。 袂使用常量时应注意: 肁(1)用Const声明的常量在程序运行过程中是不能被重新赋值的。 芇(2)在常量声明的同时赋值。 膆(3)可以为声明的常量指定数据类型,如ConstconValAsCurrency=3.78,缺省时为所赋值的类型。 羂(4)在用常量为常量初始化时注意,不可有循环引用。例如: 芈模块1中: 罿Publicconstcon1=con2+8 袅模块2中: 芆PublicConstcon2=con1*3 袃四数组 蚁1数组的定义: 羈必须用Global或Dim语句定义。Dim语句的语法格式如下: 莆Dim数组名(lowerToupper,lowerToupper)Astype 芄在这里,每对lower和upper为数组的一维,lower是该维下标的下限,upper是该维下标的上限,如不标明lower,其默认值为0。Upper不可省略。 莃例如: 蚇(1)一维数组的定义: 蒆DimRecord(5)AsInteger 蚅定义了一个有六个数据元素的整型数组 袀(2)二维数组的定义 蝿DimMatrix(2,3)AsInteger 薆该数组定义了一个二维数组,可以存储12个整型数,三行四列下标:00,01,02,03,10,23 袁2动态数组 薂带有空()的Dim可以声明一个动态数组,如: 蒈DimdynArray() 薆然后,可用ReDim语句在一个过程或函数中定义动态数组的维数和元素个数。申请或重申请存储空间的一般格式为: 节ReDimPreserve数组名(lowerTOupper,lowerToupper)AsType 羀其中,Preserve为可选项,表示是否保护己有数据。缺省时为不保护。 芇例如:ReDimdynArray(10)/为动态数组申请10个单元 蚆ReDimPreservemyArray(Ubound(myArray)+10) 蚃其中,Ubound函数返回数组的指定维的上限。 螂这是一个保留原数据的增量分配数组 芀五、枚举类型: 螅当一个变量只有几种可能的值时,可将这个变量定义为枚举类型。 肄枚举类型的声明放在窗体模块、标准模块或公用类模块中的声明部分,用Enum语句来定义,格式如下: 膀Public|PrivateEnum类型名称 聿成员名常数表达式 袅成员名常数表达式 蒅?-?- 袂EndEnum 袈默认情况下,枚举类型中的第一个常数被初始化为0,其后的常数逐项递增1。 羅例如:EnumDays 薂Saturday 莀Sunday 蚇Monday 肅Tuesday 羃Wednesday 肂Thursday 蚀Friday 膅EndEnum 莄例如在如上定义的Days枚举类型的基础上,有如下单击某按钮的过程: 葿PrivateSubCommand1_Click() 蒈DimMyDayAsDays 膅MyDay=Saturday 螄IfMyDayMondaythen 芁MsgBox“Itstheweekend!” 膇EndIf 芅EndSub 膅MyDay是一个枚举变量,Saturday的值为0,而Monday的数值为2,If中的条件成立 虿六、运算符与表达式 芀1赋值运算符:VisualBasic中的赋值运算符是“=”。 莅2数学运算符: 莂优先级运算符说明 莁高指数运算,如238 罿负号运算符 蒄*/乘除运算,其中除法(/)的所得结果 螃为实数 膃整除。所得结果为实际结果 螈的整数部分 薄Mod取模运算符,两数相除取余数 膄+-加、减运算 薁低&连接字符串。 薇3关系运算符:(等于);或(不等); 蚄(大于);=(大于等于);like(比较样式);Is(比较对象变量) 薅4逻辑运算符: 芃逻辑运算用于判断操作数之间的逻辑关系。VB提供了非(Not)、与(And)、或(Or)、异或(Xor)、相等(Eqv)和隐含(Imp)逻辑运算。逻辑运算符的优先级低于数学运算符和关系运算符。逻辑运算符本身也有优先级,其顺序为Not,And,Or,Xor,Eqv,Imp。 薀5、表达式的执行顺序: 螄1)函数运算; 蚂2)算术运算; 螀3)关系运算;(优先级:,=) 荿4)逻辑运算; 螄注:乘除法同时出现时,遵循从左到右顺序;括号的运算总是优先;字符串连接(&)不是算术运算符,但其优先顺序在所以算术运算符之后,又优先于其他运算符 肃七、输入与输出: 蒂InputBox函数:InputBox函数可以产生一个对话框,用于将用户从键盘输入的数据作为函数的返回值返回到当前程序中。 肇返回数值型数据。格式如下: 膈InputBox(prompt,title,defualt,xpos,ypos,helpfile,context) 蒃返回字符串型数据。格式如下: 袀InputBox$(prompt,title,defualt,xpos,ypos,helpfile,context) 膀其中的参数含义为: 芈prompt:一个字符串,显示出现在对话框中的用来提示用户的信息,最大长度为1024个字符。 袄Title:一个字符串,显示出现在对话框的顶部的标题信息。 蚂default:一个字符串,用于显示输入缓冲区的默认信息,即用户在执行了InputBox函数后如果没有输入任何信息,则可用此字符串作为默认的输入值。 衿xpos:整数值,用于表示对话框与屏幕左边界的距离。 莈ypos:整数值,用于表示对话框与屏幕上边界的距离。 芅Helpfile:字符串型变量或字符串表达式,用于表示要用的帮助文件的名字。 肀context:整数型变量或表达式,用于表示相关帮助主题的目录号。 蚈Print方法用于输出显示。它既可以用于窗体,也可以用于其他控件上;它可以在窗体上显示文本字符串和表达式的值,也可以在其他图形对象或打印机上输出信息。格式: 蒇对象名称。Print表达式表,|; 莂对象名称是一个可选项,可以是窗体、图片框或打印机,如果省略,则在当前窗体上直接输出; 螂表达式表是一个或多个字符串或数值表达式,用以原样输出字符串或表达式的值。也是可选项。如果省略,则输出一个空行; 蒇当需要输出多个字符串或表达式值时,各表达式间用逗号、分号或空格分隔,其中逗号分隔为标准输出格式,14个字符位为一个输出区段单位,逗号后面的表达式在下一区段输出,分号和空格分隔,则是按照紧凑格式输出; 蒇Print方法兼有输出和计算双重作用,即可以先计算表达式的值后输出; 螃每执行一次Print方法将自动换行,要显示在同一行上,可以在前一Print方法行的末尾加上一个逗号或分号。 芀与Print方法相关的还有一些函数和方法: 蒀(1)Tab函数:可以把光标移动到由参数n指定的位置,并从这个位置开始输出信息。格式为: 薇Tab(n) 膄其中n为一个整数值,指出下一个输出位置的列号,如果当前位置已经超出n,则自动下移一行,默认最左边的列号为1; 羂当n大于行宽时,显示位置为nMod行宽; 艿当一个Print方法对应n个Tab函数时,每个Tab函数对应一个输出项,各输出项之间用逗号分隔。 蚇(2)空格函数:用空格函数可以返回n个空格,格式为: 薅Space$(n) 葿(3)Spc函数:在用Print输出时可以用Spc函数跳过n个空格,格式为: 肈Spc(n) 螇(4)Cls方法:使用Cls方法可以清除Print方法显示在对象上的内容,并将光标移动到对象的左上角(0,0)位置。格式为: 螂对象。Cls 膁其中,“对象”为可选项,如果省略,则清除当前窗体内的内容。 螆例1:设计一个程序,输入一组学生信息:学号、姓名、性别、年龄和入学成绩。用窗体单击事件激发。 袇解:PrivateSubForm_Click() 膂num$=“请输入学号:” 蕿msgtitle$=“学生登记表信息” 衿nname$=“请输入姓名:” 羇sex$=“请输入性别:” 薃age$=“请输入年龄:” 莁sco$=“请输入入学成绩:” 薈Studentnum$=InputBox$(num$,Msgtitle$) 肇Studentname$=InputBox$(nname$,Msgtitle$) 羄Studentsex$=InputBox$(sex$,Msgtitle$) 蝿Studentage%=InputBox(age$,Msgtitle$) 莇Studentsco%=InputBox$(sco$,Msgtitle$) 肆Cls 莅PrintStudentnum$;“,”;Studentname$;“,”Studentsex$;“,现年” 蒁PrintStudentage%;“岁”;“,入学成绩”;Studentsco%;“分” 莀EbdSub 膆(5)MsgBox函数:VisualBasic中除了可以用Print方法在窗体或控件上输出程序执行结果等信息外,还提供了一种在适当的时候可在屏幕上显示一个对话框,让用户进行选择,并根据选择确定后续操作的功能。 蒂格式: 膃MsgBox(prompt,buttons,title,helpfile,context) 腿各参数含义为: 芆prompt:一个字符串,最大长度1024字符,输出的提示信息,当一行显示不下时,自动换行; 袃buttons:整数值或符号常量,指示显示按钮的数目及形式,使用的图标样式,默认按钮是什么以及消息框的强制回应等等。如果省略,其缺省值为0; 蚁title:显示在对话框标题栏中的信息,缺省值为该应用程序名; 羈helpfile:字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件,如果有这个选项,则必须有context选项; 莆context:数值表达式,由帮助文件的作者指定给适当帮助主题的帮助上下文编号,同理,如果有这一选项,则必须有helpfile选项。 芄表中的数值分为四类:05为对话框中命令按钮的类型和数量,每个数值表示一种组合方式;16、32、48、64为指定对话框所显示的图标;0、256、512、768指定默认的活动按钮;0、4096用于应用程序和系统强制返回。Buttons的参数值由这四类数值组成,其组成原则是从每一类中选择一个值,把这几个值加起来就获得了Buttons参数的值,在大多数应用中,只使用前三类,不同的组合会得到不同的结果。例如: 莃193160:显示“是”、“否”和“取消”按钮和“暂停”图标; 蚇342320:显示“终止”、“重试”和“忽略”按钮和“疑问”图标;蒆MsgBox的返回值如下表: 蚅例2:设计一个窗体单击事件过程,要求程序执行时出现提示信息:“请确认操作正确否?”,并在消息框的标题上显示“操作确认”标题,如果回答“是”,则将返回值6赋予变量a,并在窗体上显示返回值的平方,否则,如果选择“否”,则返回值为7,在窗体上显示“重新操作并确认!” 袀该程序产生的对话框中有三个按钮即“是”、“否”、“取消” 蝿程序代码如下: 薆PrivateSubForm_Click() 袁DimMsgAsString,titleAsString 薂DimaAsInteger 蒈Msg=请确认操作正确否? 薆title=操作确认 节a=MsgBox(Msg,19,title) 羀Ifa=6Then 芇Printa2 蚆ElseIfa=7Then 蚃Print请重新操作并确认! 螂EndIf 芀EndSub 螅八、语句与控制流 肄1、注释语句: 膀注释用来说明程序中某些语句的功能和作用。在VB中用“”和Rem来标识一条注释语句。VB程序在解释运行或编译过程中,不会处理Rem后面那一行注释语句。 聿2、赋值语句: 袅目标操作符源操作符 蒅/操作符两边的数据类型必需一致! 膆3、暂停语句: 膂格式:Stop 艿/当程序执行到Stop时,自动打开立即窗口 袆4、结束语句:格式:End/常用于结束程序 薄5、条件分支结构 袁(1)If语句的三种格式: 艿第一种是单分支格式: 芇If条件Then 莆语句 羄EndIf/其中加“”部分为可选择部分。荿第二种是双分支格式: 蚈If条件Then 螃语句块1 蚃Else 葿语句块2 肈EndIf蒅这里是双分支,即如果条件满足,执行语句块1,否则,执行语句块2。蒁注意:语句块中的语句不能与其前面的Then在同一行上!蕿第三种格式: 葿If条件1Then 羃语句块1 蒄ElseIf条件2Then 虿语句块2 薆 蚅Elseif条件nThen 芃语句块n 螈Else 羇语句块 莇EndIf 肂(2)IIf函数 袈VB提供了一种用来执行简单条件判断的函数IIf,它是“IfThenElse”结构的简单版本,格式如下: 莈Result=IIf(条件,为“True”的执行语句,为“False”的执行语句) 袅这里的Result是函数的返回值,括号中的三项均不能省略,执行的操作为首先判断条件,当“条件”为真的时候,执行“为“True”的执行语句”,否则执行“为“False”的执行语句”。 螁例如有如下判断条件: 袈Ifa8Then 蝿x=3 薇Else 袄x=0 羈EndIf 羆用IIf函数替代,则可简化为: 羅x=IIf(a8,3,0) 薃类似于C语言中的条件表达式: 肈表达式1?表达式2:表达式3 莇例:Max=(ab)?a:b; 螆2SelectCase语句 莂SelectCase语句很适合多重条件判断。它的书写格式为: 蒂Selectcase测试表达式 螇Case表达式结果1 膄语句块1 莄Caset表达式结果2 蒂语句块2 膈 袆Casetelse 膃语句块n 薂EndSelect 蕿测试表达式既可以是数值表达式,也可以是字符串表达式,通常为变量或常量;每个语句块由一行或多行合法的VisualBasic语句构成;表达式结果1、表达式结果2被称为域值,它可以是:表达式,表达式、表达式To表达式或者Is关系运算表达式(运算符可以是:,=,)之一。例如: 莄Case1,3,5,7 羂Case1To6 蚂CaseIs=ab 蚆这三种表现形式均合法,但应该注意表达式结果中的表达式必须与测试表达式的类型一致。 肆例:从键盘上输入学生考试成绩的等级,然后按照考试成绩的等级显式出百分制的分数段,可以用SelectCase语句来实现: 蚁SubForm_click() 螁DimgradeAsString,Msg 肇Msg=”请输入学生的成绩等级:” 薄gradeInputBox$(Msg) 螄IfNotIsNull(grade)Then 袁SelectCasegrade 蒈Case“A” 芆Msg=”85100” 薃Case“B” 羁Msg=“7084” 衿Case“C” 蚄Msg=“6069” 节Case“D” 肁Msg=“0Then 莈PrintNumx; 芈Sumx=Sumx+Numx 肄Else 莀Sumy=Sumy+Numx 肀EndIf 肆Nexti 膄Print 螀Print“已输入的正数累加和为:”;Sumx 薈Print“已输入的负数累加和为:”;Sumy 螅EndSub 芄2ForEachNext语句 膁对集合中的每个元素进行一次循环,直到集合中无更多元素时,执行Next下面的语句。一般格式为: 芀ForEach集合中元素in集合 袈语句 莄ExitFor 薂语句 蚈Next元素 薇3DoLoop语句 莃(1)当型循环格式: 羃格式1:Do 蒀语句块 莆ExitDo 蒃LoopWhile循环条件 肀格式2:DoWhile循环条件 袈语句块 膅ExitDo 薃Loop 蒁这种结构的功能是当“循环条件”为“真”时,执行循环体语句块,否则,跳出循环体,执行Loop后面的语句。第一种格式的执行顺序是:先执行循环体语句块,然后判断“循环条件”,如果为“真”,则继续执行循环体语句块,否则,跳出循环,执行Loop后面的语句;第二种格式的执行顺序:先判断“循环条件”,如果为“真”,则执行循环体语句块,否则跳出循环,执行Loop后面的语句; 薀(2)直到型循环格式: 膈格式1: 蚃DoUntil循环条件 袂语句块 肇EixtDo用于在特定条件下退出循环 羇Loop 螃格式2: 芃Do 蝿语句块 螅EixtDo用于在特定条件下退出循环 袃LoopUntil循环条件 蚃这种结构的功能是直到“循环条件”为“真”时,跳出循环体,执行Loop后面的语句,否则,就一直执行循环体语句块。第一种格式的执行顺序是:判断“循环条件”,如果为“假”,执行循环体语句块,否则,跳出循环体,执行Loop后面的语句;第二种格式的执行顺序是:先执行循环体语句块,然后判断“循环条件”,如果为“假”则继续执行循环体语句块,否则,跳出循环体,执行Loop后面的语句。 膇注意:“While循环条件”或“Until循环条件”为可选项,如果缺省,则该循环将成为无限循环。 螈4WhileWend语句 羃这种语句是从传统BASIC语言中继承下来的,用DoWhileLoop语句功能一样,其语句格式为: 袀While条件 罿语句块 薇Wend 羃5、在VisualBasic中有以下几种跳出语句: 芁ExitFor:用于中途跳出For循环。 蚁ExitDo:用于中途跳出Do循环。 芆ExitSub:用于中途跳出Sub过程。 肂ExitFunction:用于中途跳出Function过程。 蚂以上几种中途跳出语句都既可以直接使用,也可以用条件判断语句加以限制。且在循环中或过程中出现的次数没有限制。使用它们,可以为某些循环体或过程在需要的时候设置明显的出口。 聿九、过程: 肅1.Sub过程(子程序) 膂一般格式: 肃StaticPrivatePublicSub过程名(参数列表) 袁语句块 肈ExitSub 节EndSub 膀参数表列中含有该过程被调用时由主调方传送过来的变量名或数组名,各名字之间用逗号分隔,它们指明了调用时需传送给该过程的参数类型和个数,每个参数的格式为: 艿ByVal变量名()As数据类型 袇ByVal是可选项,如果有这个选项,则表明该参数是“传值”参数。 莂在VisualBasic中应区分通用过程和事件过程这两类子过程。 薁通用过程:告诉应用程序如何完成一项指定的任务。通常,在应用程序中经常会发生几个不同的事件过程也许要执行同样的动作的情况,这就要求系统提供能够将公共语句放入一个分离开的过程(通用)中。 羁事件过程:当用户对VisualBasic中的对象施以动作并得到系统确认时,便自动用相应事件的名称调用该事件过程。事件名称相当于对象和代码之间的桥梁,事件过程则是附加在窗体或控件上的一段程序代码。 蚆所有的事件过程使用相同的语法。其格式如下: 蚆PrivateSub控件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论