精华内容
下载资源
问答
  • VB变量可以分为3类:局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。各变量位于不同层次。局部变量过程级变量只有在声明它们过程中才能被识别,它们又...

    变量的作用域指的是变量的有效范围。为了能正确地使用变量的值,应当明确可以在程序的什么地方访问该变量。VB中变量可以分为3类:局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。各变量位于不同的层次。

    局部变量

    过程级变量只有在声明它们的过程中才能被识别,它们又称为局部变量。

    用Dim或者Static关键字来声明它们,两者的区别在于:在整个应用程序运行时,用Static声明的局部变量中的值一直存在,而用Dim声明的变量只在过程执行期间才存在。

    对任何临时计算来说,局部变量是最佳选择。例如,可以建立十来个不同的过程,每个过程都包含称作intTemp的变量(同一个变量名在不同的过程中意义可能不同)。只要每个intTemp都声明为局部变量,那么每个过程只识别它自己的intTemp版本。任何一个过程都能够改变它自己的局部的intTemp变量的值,而不会影响别的过程中的intTemp变量。

    模块变量

    按照缺省规定,模块级变量对该模块的所有过程都可用,但对其它模块的代码不可用。可在模块顶部的声明段用Private或Dim关键字声明模块级变量,从而建立模块级变量。例如:

    Private intTemp As Integer

    在模块级,Private和Dim之间没有什么区别,但Private更好些,因为很容易把它和Public区别开来,使代码更容易理解。

    全局变量

    为了使模块级的变量在其它模块中也有效,用Public关键字声明变量。公用变量中的值可用于应用程序的所有过程。和所有模块级变量一样,也在模块顶部的声明段来声明公用变量。例如

    Public intTemp As Integer

    注意:不能在过程中声明公用变量,只能在模块的声明段中声明公用变量。

    总结以上可知:声明语句有如下四种格式,这四种语句创建了不同特性的变量,下面来作详细的介绍:

    (I)Dim语句,其格式为:

    Dim<变量名>[As<数据类型>]

    程序运行时,上述声明在内存中为变量分配空间,并使Visual Basic了解随后要处理数据的数据类型。

    Dim语句用于在标准模块(Module)、窗体模块(Form)或过程(Procedure)中定义变量或数组

    用Dim语句在窗体的过程中声明的变量称为局部变量,其作用域仅局限在本过程内部,过程一旦执行完毕,其值也就消失了。

    例如

    Dim Number As Integer'声明Number为Integer(整型)变量。

    Dim I As Integer,j As Integer,k As Integer'同时声明为整型变量。

    Dim AnyValue,MyValue'AnyValue和MyValue按缺省情况被声明为Variant类型,同时值被设为Empty(空)。

    Dim AnotherVar, Choice As Boolean, BirthDate As Date'在一行中声明多种类型变量,AnotherVar为Variant类型,因为它的类型被省略了,Choice为布尔型变量,BirthDate为日期型变量。

    (2)Private语句.其格式为:

    Private<变量名>[As<数据类型>]

    如果要在一个窗体模块的所有过程中共享同一个变量,则应在这个窗体模块的声明段用Private语句进行声明.这种变量称为模块级变量,其作用域为整个窗体模块。这就好比是您家里的电话号码,它在您所在的城市是通用的,但出了这个范围就不能单独使用了。

    (3)Public语句,其格式为:

    Public<变量名>[As<数据类型>

    ]

    用来在标准模块中定义全局变量或数组。如果在标准模块的声明段中用Public关键字来声明模块级变量,那么这个变量的作用域是整个工程,即它会在整个工程的所有模块中有效,这种变量称为全局变量,也称公用变量。这就好比是加了邮政区号的电话号码,在全国范围内通用。

    (4)static语句.其格式为:

    static<变量名>[As<数据类型>·

    局部变量在过程执行结束后其值不能被保留下来,在每一次过程重新执行时,变量会被重新初始化。如果希望在该过程结束之后,还能继续保持过程中局部变量的值,就应该用static关键字将这个变量声明为静态变量。这样,即使过程结束,该静态变量的值也仍然保留着。

    例如我们可以为一个窗体编写下面这样一程序,可以对用户在窗体上单击的次数计数并用显示出来。

    Private Sub Form_click()

    Static

    I As IntegerI = I + 1Label1.Caption = IEnd Sub

    再如:

    Private Sub Command1_Click()

    Static IntCount As IntegerIntCount = IntCount + 1Select Case IntCountCase 1Command1.Caption = "春眠不觉晓"Case 2Command1.Caption = "处处闻啼鸟"Case 3Command1.Caption = "夜来风雨声"Case ElseCommand1.Caption = "花落知多少"IntCount = 0End Select

    End Sub

    将Static换成Dim,运行一下,连续单击窗体,两者结果的不同显而易见。

    注意:就像在过程中不能使用Public和Private关键字一样,在模块的声明段中不能使用static关键字,会报错。

    定义完变量,初值的问题:

    整数:0

    浮点数:0.0

    字符串:""

    Variant:Empty(保留字,关键字)不同与null,0,Nothing

    判断它有没有赋值,就看它的值是不是empty

    展开全文
  • 变量和常量是VB语句重要部分,也是VB编程基础知识内容。今天我们就共同来学习一下这方面内容。VB的变量与常量变量是指程序在运行过程中其值可以改变量。如何声明变量1.隐式声明:只是变量,不经声明.直接...

    变量和常量是VB语句的重要部分,也是VB编程的基础知识内容。

    今天我们就共同来学习一下这方面的内容。

    VB中的变量与常量

    变量

    是指程序在运行过程中其值可以改变的量。

    如何声明变量

    1.隐式声明:只是变量,不经声明.直接使用

    2.显示声明:变量声明后再使用的方式成为显式声明

    强制声明的两种方式

     (1)、工具-选项-编辑器-勾选"要求变量声明"-重新启动VB;

     (2)、窗体对象列表选择(通用),然后再通用区加上声明语句:Option Explicit 

    使用DIM语句声明变量(也可以用来声明数组)

    1.声明一个变量 Dim Name As String

    2.同时声明多个变量 Dim m As Integer,N As Integer

    3.声明多个不同类型的变量 Dim a,b As Boolean,c As Date

    全局变量的声明:

    在标准模块的声明部分,使用关键字Public或者Global声明,可以被工程中的任一窗体,任一模块中的任一过程或函数使用

    全局变量的使用过程中一定要特别注意,因为每一个程序模块都可能改变它的值,所以如果控制不当,极易出现错误。

    常量

    常量指在程序运行过程中,其值不会发生改变的量

    为什么要定义常量?

    在编写程序时,我们常会遇到一些固定不变的数值,利用常量可以减少输入错误,简化固定数值的修改过程,增强程序的可读性

    比如求圆面积和周长时,定义 Const pi=3.14

    VB 中的常量分为两类

    47af2f79659d791d6f87650517065a52.png

    a.系统内部常量

    是为应用程序和控件提供的

    :VbRed(红色)、 VbWhite(白色)

    b.符号常量(自定义常量)

    Public是公有声明:

    特点:

    1、使用Public 声明的常量可在整个应用程序中使用;

    2、必须在标准模块的声明区中使用

    3、在窗体模块或类模块中不能声明Public常量

    Private是私有声明:

    1、Private可用在模块级声明常量,

    2、此常量只准许在模块级使用;

    3、Private关键字不能在过程声明变量时使用。

    缺省为Public

    说明:

    1.用Const声明的变量在程序运行的过程中是不能被重新赋值的;

    2.在常量声明的同时要对常量赋值;

    3.可以在声明常量时指定类型;

    4.在使用一常量为另一常量初始化时注意循环引用时会出错。

    VB变量类型转换规则

    VB程序语言允许不同类型的变量之间相互赋值,也允许把不同类型的值赋予某种类型的变量,VB程序会自动将所赋予的值转换为被赋值的变量的类型。

    15b44ef9e1c01b98d061da741164e315.png

    数值型变量的赋值 

    2fc165ef761286ffd4f226d800d440bd.pngc18a670cf43775f7d7f397b7dfc92291.png

    数据型变量之间可以相互赋值。

    浮点数转换为整型数时,小数部分“四舍五入”为整数(其中0.5要向最近的偶数靠拢)。

    当给一个变量赋予超出它表示范围的值时,会导致“溢出”错误。

    例如:

    (1)   intN1=45631234   '(超出整型变量范围,系统提示溢出错误)

    (2)   bytN1=-12 '(超出表示范围,报溢出错误)

    c18a670cf43775f7d7f397b7dfc92291.png

    字符串变量

    如果字符串变量中存贮的是数值信息,则可以将其赋予数值型变量。数值型变量的值也可以赋予字符串变量。

    (1)   strFirst=“1234” 

    intFirst=strFirst    '(intFirst的值为1234)

    (2)   intSecond=32.21 

     strSecond=intSecond   '(strSecond的值为“32”)

    (3)   strThird=“abc123”  

    intThird=strThird      '(出错)

    逻辑型变量

    逻辑变量的值赋给数值型变量,False转换为0,True转换为-1。

    数值型变量的值赋给逻辑变量,0转换为False,其它值转换为True。

    逻辑型变量的值赋给字符串,True和False分别转换为“True”和”False”。

    日期型变量

    日期型变量转换为字符串时,按照日期的短格式字符串。

    例如:

    dtmStart=#2/1/99 8:20:00# 

     str1=dtmStart  

    'dtmStart值为“99-2-1 8:20:00”

    表示有效时间的字符串可以赋值给日期时间变量。

    例如:dtmEnd=“13:23:34”     '则 dtmEnd的值为 #13:23:34#

    日期时间型变量赋给数值型变量时,日期部分转换为数值的整数部分,值为此日期距1899年12月30日的天数;时间部分转换为小数部分,从零时到该时间占一整天的比例,12:00:00转为0.5。

    例:

    dtm3=#3/18/1999 6:00:00#  

     sng2=dtm     'sng2的值为“36237.25”

    大家在学习中有不懂的问题可以添加小编微信号:vbyjk521,验证消息填写“VB学习"。

    5bec5871ed1572cde2f189a31eba72ba.gif5f9a5df4591b0caa7a89545ca3155e8a.png

    长按上图,关注跟我学VB公众平台

    展开全文
  • 前言:我们都知道,在VB中,可以使用VarPtr、StrPtrObjPtr来获得变量的地址,它们之间有什么区别联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又是...

    前言:我们都知道,在VB中,可以使用VarPtrStrPtrObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又是为什么呢?如何正确地利用这些函数向API传递指针呢?

        首先,我们来了解一下VB中的变量及其定义。

        也许你会说我多此一举,如此简单的问题,还需要我来解释吗?

        其实不然。

        现在假设有以下语句:

        Dim i As Long

        它表示什么呢?它表示我们定义了一个名称为a且类型为Long的变量。然而对于内存来说,即没有名称,也没有类型,只有用数字数字表示的地址和连续所占用地址的数量。由于Long为4个Byte大小,因此,我们可以把这条语句看作程序对系统的内存管理器说,俺想在地址a上使用大小为4Byte这一段连续地址,然后准备在这段地址里放点东西,当然,俺的东西不会超过4Byte的。

        再看一下这条语句:

        Dim s As String

        它又表示什么呢?直白地说,它表示我们定义了一个名称为s且类型为String的变量。现在麻烦的是,String的大小是不确定的。如果程序还像上一条语句一样直接告诉系统的内存管理器说:喂,俺想在地址s上放点东西。内存管理器听到后说:又来放东西啊,多大啊?程序说:不知道。内存管理器说:不知道你来干啥啊,我乍给你准备啊?简直是胡闹,一边去,其他人正等呢。这下程序犯了愁,问题不解决,没法给设计人员交代啊。想了想,又回去跟内存管理器说:这样吧,我在地址s上做一个标志吧,只有4Byte大小(32位操作系统的最大寻址能力),到时东西带来了,再将这个标志改为东西实际存放的地址,好吗?内存管理器说:这就对啦,别忘了把东西带来啊。

        通过上述两条语句,我们可以了解到,变量定义实际上表示两个含义,一个是变量名称,一个是变量的值,它们都会占用空间的,只不过有些变量由于个子比较小,所以变量名称和变量值放在一块就行,如变量i,而有些变量由于块头比较大或不确定,需要分别进行存放,如变量s。

        现在,我们站在内存管理器的角度来理解一下,假设变量a的地址为&H0013FBD0,a的值为100,那么很显然,从地址&H0013FBD0开始到&H0013FBD3这4个byte的空间里,存放的是100;而假设变量s的地址为&H0013FC50,s的值为“100”,那么,从地址&H0013FC50到&H0013FC53这4个Byte的空间里,存放的是指向实际存放“100”的值的地址。

        摘自:深入了解VB中的变量和指针

    相关参考


    VB中的指针技术

    一个VB数组指针类

    VB Environ系统环境变量函数大全

    变量、常数和数据类型及过程概述

    VB小技巧:字符变量中双引号的输入

    深入了解VB中的变量和指针


    展开全文
  • 深入了解VB的变量和指针(一)

    千次阅读 2009-05-14 19:56:00
    前言:我们都知道,在VB中,可以使用VarPtr、StrPtrObjPtr来获得变量的地址,它们之间有什么区别联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又是...

        前言:我们都知道,在VB中,可以使用VarPtr、StrPtr和ObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又是为什么呢?如何正确地利用这些函数向API传递指针呢?
        首先,我们来了解一下VB中的变量及其定义。
        也许你会说我多此一举,如此简单的问题,还需要我来解释吗?
        其实不然。
        现在假设有以下语句:
        Dim i As Long
        它表示什么呢?它表示我们定义了一个名称为a且类型为Long的变量。然而对于内存来说,即没有名称,也没有类型,只有用数字数字表示的地址和连续所占用地址的数量。由于Long为4个Byte大小,因此,我们可以把这条语句看作程序对系统的内存管理器说,俺想在地址a上使用大小为4Byte这一段连续地址,然后准备在这段地址里放点东西,当然,俺的东西不会超过4Byte的。
        再看一下这条语句:
        Dim s As String
        它又表示什么呢?直白地说,它表示我们定义了一个名称为s且类型为String的变量。现在麻烦的是,String的大小是不确定的。如果程序还像上一条语句一样直接告诉系统的内存管理器说:喂,俺想在地址s上放点东西。内存管理器听到后说:又来放东西啊,多大啊?程序说:不知道。内存管理器说:不知道你来干啥啊,我乍给你准备啊?简直是胡闹,一边去,其他人正等呢。这下程序犯了愁,问题不解决,没法给设计人员交代啊。想了想,又回去跟内存管理器说:这样吧,我在地址s上做一个标志吧,只有4Byte大小(32位操作系统的最大寻址能力),到时东西带来了,再将这个标志改为东西实际存放的地址,好吗?内存管理器说:这就对啦,别忘了把东西带来啊。
        通过上述两条语句,我们可以了解到,变量定义实际上表示两个含义,一个是变量名称,一个是变量的值,它们都会占用空间的,只不过有些变量由于个子比较小,所以变量名称和变量值放在一块就行,如变量i,而有些变量由于块头比较大或不确定,需要分别进行存放,如变量s。
        现在,我们站在内存管理器的角度来理解一下,假设变量a的地址为&H0013FBD0,a的值为100,那么很显然,从地址&H0013FBD0开始到&H0013FBD3这4个byte的空间里,存放的是100;而假设变量s的地址为&H0013FC50,s的值为“100”,那么,从地址&H0013FC50到&H0013FC53这4个Byte的空间里,存放的是指向实际存放“100”的值的地址。

    展开全文
  • vb.net 数组定义详解

    千次阅读 2017-08-10 16:53:13
    数组(Arrays),可以用相同名字引用一系列变量,并用数字(索引)来识别它们,在许多场合,使用数组可以缩短简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组元素下标是连续。由于vb.net对...
  • 常量是在程序中预先设置,值不会改变数据,在定义的时候就要赋值。...模块级常量定义在窗体模块的声明部分;全局常量定义在标准模块的声明部分,并且要在Const前加上 Public关键字。变量是指在程序...
  • VB.NET中,可以使用变量储存数据,例如储存学生姓名: dim strname as string="张三" 可以声明多个变量来储存三年级1班全部学生姓名,为了方便,给每个学生编了号: dim 三...
  • static就是声明的静态变量

    千次阅读 2009-03-20 22:15:00
    static就是声明的静态变量,下面是VB中的静态变量解释,他JAVA中的是一样的:1. 静态局部变量 在局部变量的说明前再加上static说明符就构成静态局部变量。 例如: static int a,b; static float array[5]={1,2,3,...
  • 使用VB.NET声明语句命名和定义过程、变量、属性、数组常数。在声明编程元素时,还可以定义其数据类型、访问级别范围。有关更多信息,请参见已声明元素特性。 下面示例包含三个声明。 Visual Basic ...
  • vb的property event

    2015-10-19 10:45:00
    Event 语句定义用户自定义事件。语法[Public] Event procedurename [(arglist)]Event 语句包含下面部分:部分 描述 Public 可选。指定该 Event 在整个工程中都是可见。缺省情况下 Events 类型是 Public。应...
  • 1. 什么是后期绑定前期绑定后期绑定 MSDN 6的定义如下: 后期绑定:若将一个变量声明为 As Object 或 As Variant(包括 As Form 或 As Control 的变量),Visual Basic 在编译时就无法确定该变量将引用哪种类型的...
  • 什么是后期绑定前期绑定后期绑定 MSDN 6的定义如下: 后期绑定:若将一个变量声明为 As Object 或 As Variant(包括 As Form 或 As Control 的变量),Visual Basic 在编译时就无法确定该变量将引用哪种类型的...
  • VB.Net - 常数枚举

    2021-02-27 11:19:56
    常量被视为常规变量,除了它们的值不能在它们的定义之后被修改。 enumeration 枚举是一组命名的整数常量。 声明常量 在VB.Net中,常量是使用Const语句声明的。 Const语句用于模块,类,结构,过程或块级别,以用于...
  • 原文链接:VB.Net 教学(五)常数枚举constants ...常量被视为常规变量,除了它们的值不能在它们的定义之后被修改。enumeration 枚举是一组命名的整数常量。声明常量在http://VB.Net中,常量是使用Const语句声明的...
  • 上篇中我们学习了Flutter必备语言Dart教程02 - 控制流,异常,现在我们继续学习Dart中泛型。Class以下是在Dart中声明一个简单类,并创建它实例方法。向类中添加实例变量,以及构造函数Dart提供了一种构造...
  • 此处为VisualFreeBasic编程教程(从零开始学或VB进阶)的子章节部分,全部目录点链接。变量变量是可以操纵的名称符号。它们使用由字母,数字字符“_”组成...根据给定该变量的Dim声明的方式方式,变量可供稍后访问...
  • C#与VB的基础比较

    千次阅读 热门讨论 2014-04-05 20:08:00
    学习完了C#后,然后回过头来想了想VB,两者相同之处还是挺多...当定义一个值类型的变量时,C#会根据所声明的类型,以堆栈方式分配一块大小相适应存储区域给这个变量,随后对这个变量进行读写操作。 值类型就
  • 可以使用 Public 语句声明一个过程,Public NumberOfEmployees As Integer也可以使用 Public 语句来声明变量的对象类型:在模块级别中使用,PrivateNumberOfEmployees As Integer也可以使用Private语句来声明变量的...
  • VB.NET笔记1

    2011-11-01 16:37:47
    VB.NET 也是完全面向对象语言  mybase可以调用基类 函数 mybase不是对象 而是一...类属性通过 Property 定义 通过 Set End Set Get End Get 过程可以对内部一个声明 private私有变量 进行赋值或者 获取
  • VB不同模块过程调用、菜单编辑

    千次阅读 2010-12-14 20:53:00
    <br />标准模块是多个窗体中公共代码部分,只能存放通用过程,一个应用程序可以有多个标准模块 使用Dim或Static声明的变量称为局部变量,这种变量只在所定义的过程中有效,不同过程中局部变量可以...
  • Python JS 均为弱类型语言,即在定义一个变量时,只需声明其名字,而无需显式声明其类型。而C和VB则于此不同。例如: int i = 1; // C Dim i As Integer = 1 ' VB var i = 1; (全局变量) 或直接 i = 1; ...
  • 原文链接:VB.Net 教学(五)常数枚举constants ...常量被视为常规变量,除了它们的值不能在它们的定义之后被修改。enumeration 枚举是一组命名的整数常量。声明常量在http://VB.Net中,常量是使用Const语句声明的...
  • VB编写基于控制台程序

    千次阅读 2008-03-31 22:09:00
    设计思路 (1)分配控制台程序的内存资源...实现步骤 (1)启动VB,新建一个工程,删除默认的“From1”窗体,然后添加一个模块,在该模块中输入常量全局变量的定义代码。 注:API函数的声明可参照“本期API函数声明
  • 利用VB开发通信程序主要方法有两种:一是利用VB本身提供控件(CONTRALS);另一种方法是利用Windows API应用程序接口。Windows API 主要提供了三个...在VB调用之前应该先在全局变量定义声明API通信函数、定义常量。
  • VB验收总结

    热门讨论 2020-01-16 16:08:52
    进行起来当师父提问后,我发现我问题太多了,简直没学过VB一样,只是照着敲了一遍代码,下面是我总结一些问题。 1、为什么option explicit,有有,有没有 在代码前加上Option Explicit,变量在使用之前...
  • 而且,尽管dBASE、Paradox本身DDL (Data Definition Language,即数据定义语言)DML(Data Manipulation Language,即数据操纵语言)是非结构化查询,但它们仍然可以使用VB的SQL语句JET引擎来操纵。...
  • VB串行通信

    2013-03-20 13:50:31
    利用VB开发通信程序主要方法有两种:一是利用VB本身提供控件(CONTRALS);另一种方法是利用Windows API应用程序接口。Windows API 主要提供了三个...在VB调用之前应该先在全局变量定义声明API通信函数、定义常量。
  • VB 2010 (11)创建类

    2020-04-03 17:34:01
    使用Class关键字可以创建类,类包含了组成类的变量、方法、属性事件的定义声明实现(代码)。每个基于这个类创建的对象都会具备相同的方法、属性事件,以及类中的字段定义的一组定制数据。 1.Class关键宇...

空空如也

空空如也

1 2 3 4 5 6
收藏数 114
精华内容 45
关键字:

vb变量的定义和声明