1樓:閃星
說宣告之前先說一個很久很久以前的故事:
有一天,一個偉大的媽媽生了個男孩,非常可愛。媽媽給他取了個名字,姓sss,名_820。
又有一天,媽媽的一個叫vb的朋友來看這個孩子,但是並不知道是男孩或者女孩,叫什麼名字。
於是乎,vb就問媽媽:「是男孩還是女孩?叫什麼名字呢?」
媽媽說:"是男孩,叫sss_820"。
vb的記憶力很好,媽媽只說了一次就記住了這男孩的性別和名字。
——全劇終
好了,故事寫得不好,別見笑。
來看下宣告,這裡我只說宣告變數,其他的你自己查下資料哈。
先來個小程式:
option explicit '強制宣告變數
private sub command1_click()
debug.print sss_820
end sub
按除錯按鈕,結果有錯,看圖圖:
看到沒有,vb 說不認識sss_820,好吧!那就介紹下唄!
option explicit '強制宣告變數
private sub command1_click()
dim sss_820 as integer
debug.print sss_820
end sub
按除錯按鈕,有結果了吧,看圖圖:
好了,我們的小程式算是完成了。下面來分析下:
option explicit '強制宣告變數,如果你用到的變數沒有宣告就會出現提示「變數未定義」,如第一個圖圖。
private sub command1_click()
end sub
這兩行構成一個commandbutton控制元件的單擊事件。
dim sss_820 as integer
dim 這個是用來宣告變數、常量、陣列等等東東的,有區域性和全域性之分,這裡在commandbutton控制元件的單擊事件裡面用dim就是宣告為區域性變數。
sss_820 這裡作為一個變數,變數是什麼?這個要說清楚的話又得說一個很久很久以前的故事,所以,暫時還是放一下吧!你知道是變數就ok了。
還是不知道?尼歐。。。問下度娘吧!
as 翻譯過來就是「作為」的意。
整句一起dim sss_820 as integer 意思是宣告變數sss_820為區域性的,型別為整型。
這句話是不是讓你想起了上面按個故事?
姓名:sss_820
性別:男孩(整型,這裡並不是說男孩就對應整型,只是一個說明,你懂我意思?)
好了,看到這裡知道宣告是什麼意思了嗎?
還不知道!尼歐。。。
我也沒辦法了。
有問題請追問,滿意請採納!
2樓:匿名使用者
變數的作用域
區域性(local):在過程級定義的變數,僅在宣告它的過程中可見。
模組/窗體(modudule/form):在模組或窗體級宣告的變數,在宣告它的模組或窗體中的所有過程中可見。
公有(public):在模組或窗體級宣告的變數,在所有專案的任何過程中都可見。
static 關鍵字
普通的區域性變數在過程結束後被釋放,在下次執行過程時從新初始化為0。 用static宣告的區域性變數在過程結束後不被釋放,仍保留變數的值。 例如: sub p()
static i as integer i=i+1
msgbox "a=" & i end sub
常量常量是程式中不發生變化的值。它和變數一樣有三種作用域: 它的定義語法如下:
[public]const con[as type]=expression [private]const con[as type]=expression 內為可以預設項
資料型別轉換
visualbasic自動完成某些資料轉換,為提高執行速度,我們通常使用ctype() 函式顯示地轉換。
visualbasic轉換函式包括: cbool 轉換為boolean型別 cbyte 轉換為byte型別 ccur 轉換為currency型別 cdate 轉換為date型別 cdbl 轉換為double型別 cint 轉換為integer型別 clng 轉換為long型別 csng 轉換為single型別 cstr 轉換為string型別 cvar 轉換為variant型別 cverr 轉換為error型別
vb的資料型別(一)
boolean(布林型):佔用2位元組 byte(位元組):佔用1位元組.
integer(整型):型別標識%,佔用2位元組. long(長整型):標識"&",4位元組.
single(單精度型):標識"!",佔用4位元組.
double(雙精度型):標識"#",8位元組. currency(貨幣型):
標識"@",8位元組. date(日期型):8位元組.
string(字串,變長):標識"$",10位元組+串長.
vb的資料型別(二)
string(字串,定長):標識"$",串長. object(物件型):佔用4位元組. variant(變體,數值):佔用16位元組.
自定義(user_define):元素申請的長度之和.
vb的變數
變數名的命名遵從識別符號命名規則.
變數的宣告:vb可以使用不宣告的變數.如:
form的click過程,加入下列**:private sub form_click() stringtext$="hello,world!" print "*********",stringtext$ end sub
vb變數的宣告
格式:dim 變數 as 型別 :說明區域性變數 格式2:
private 變數 as 型別 :說明私有變數 格式3:public 變數 as 型別 :
說明公告全域性變數 格式4:static 變數 as 型別 : 說明靜態變數 vb變數宣告示例 變數宣告
變數宣告應注意的問題
dim a,b,c as integer是錯誤的.本意是將a,b,c都說明為integer ,但實際上只有c被宣告成integer,而a,b預設為variant型別.
使用不帶as的dim語句,會被宣告成variant型別的變數. 對於宣告boolean型的變數,其預設值為false.
為宣告為date型別的變數賦值時,日期值應放在一對#之間,且多種日期和時間格式在vb中都是有效的.如: date1=#1-10-98#:
date2=#10-1-98 12:20am#
vb變數的作用域和生存期
變數的作用域是指變數的有效作用範圍,也就是變數可以被訪問的範圍.
vb按三種方式來定義變數的作用範圍:過程(在過程內部使用dim或static),私有(在模組開頭加上dim或private),公共(在模組開頭加上public)
變數的生存期是指vb儲存該變數值的時間,是變數在整個程式執行過程中的有效生存時間.
過程變數
是指在過程或函式內部定義的變數,這種變數無論是用dim還是static宣告,其作用域都只是該過程或函式體,在過程函式外不能引用.因此,在不同的過程或函式中可以存在相同名字的變數.
使用dim和static宣告的過程變數的作用域都是一樣的,但生存期不一樣.用dim宣告變數時,它的生存隨著包含它的過程或函式的執行而終止,vb不再保留其值.用static宣告的變數,其生存期為整個程式,在包含它的過程或函式再次被呼叫時,vb將不會再次對它初始化,其值為上次過程或函式呼叫完成後的值.
過程變數示例一 過程變數示例二
窗體層變數
它是在窗體的通用部分宣告的變數,即不是在任何一個窗體內的過程或函式中宣告的變數.它的作用範圍至少是窗體的存在範圍,即是在窗體內的每個過程或函式中都可以使用窗體層變數.可以用dim\private\public宣告.
對於用dim和private宣告的窗體層變數,其作用範圍都是在所宣告的窗體範圍內.用public宣告的窗體變數作為窗體公用資料成員,作用可以大於當前窗體範圍.引用方式是"窗體名.
變數名".
窗體層變數示例
模組層變數
在模組通用部分dim\private\global\public宣告的變數."模組"在"工程"中選擇"新增模組"選單項來實現.
用dim\private 宣告的模組層變數作用域為所在模組範圍,用public\global定義的模組層變數則可以全域性使用.引用方式是"模組名.變數名".
變數作用範圍總結 過程 局域變數 過程 局域變數 窗體
窗體級變數在通用中宣告,專用變數僅在此窗體中可見 模組
模組級變數在通用中宣告專用變數僅在此模組中可見 全域性變數 用public\global在模組宣告
vb的常量
vb中的常量可分為:系統內在常量和符號常量.
系統內在常量:是系統提供的自身擁有的常量(如:表示顏色的常量p36).可與應用程式的物件,方法和屬性一起使用.
符號常量:程式中用const宣告的常量,宣告後,我們就可以用常量名來引用其代表的常數. 例如:const pi=3.1415926 vb符號常量的定義
語法:[public|private] const 變數名[as 資料型別]=表示式.
其中public 公有宣告,使用public宣告的常量可在整個應用程式中使用,它必須在標準模組的宣告區中使用.在窗體模組或類模組中不能宣告public常量.
private 是私有宣告,可用在模組級宣告常量(是指放在窗體,類或標準模組內的宣告;private關鍵字不能在過程宣告變數時使用. 使用vb常量應注意的問題
用const宣告的常量在程式執行過程中是不能被重新賦值的. 在常量宣告的同時賦值.
可以為宣告的常量指定資料型別,如 const conval as currency=3.78
vb中的陣列
陣列是有相同資料型別的一組變數的集合.用private,public,global或dim語句來宣告. 格式:dim 陣列名(lower,upper) as (type)
如:dim record(5) as integer dim matrix(2,3) as integer
動態陣列:帶有空()的dim 可以宣告一個動態陣列.如:dim dnyarray() 靜態陣列
是指陣列元素的個數是固定不變的,即它們佔用的記憶體空間大小是固定不變的. 根據維數的不同,可分為一維陣列和多維陣列. vb動態陣列
目的:根據需要來確定數目. 格式:dim myarry( ) as integer
在用時,必須使用redim語句把它重新定義(即具體化). 靜態陣列和動態陣列
靜態陣列是指陣列元素的個數是不變的.
動態陣列,可以在程式執行時根據需要,精確定義陣列的大小.在宣告陣列時,不給出維數列表就是將陣列宣告為動態陣列.如:dim myarry () as integer
但使用時,還需使用redim語句把它重新定義,如redim myarry(10,10) lbound,ubound函式與陣列
lbound函式和ubound函式都是返回一個long型資料,前者得到的值為指定陣列維可用的最小下標,而後者得到的是最大下標.
格式:lbound(陣列名[,指定的維數]) ubound(數值組名[,指定的維數]) 使用陣列時應注意
陣列名命名規則和變數名的相同. 陣列名後是用圓括弧,不能用方括弧.
下標的下界必須不能大於其上界.
記錄型別資料
記錄型別定義: [private|public] type 記錄型別名 成員列 end type
在記錄型別中宣告靜態數時,必須用數字文字或常量而不能用變數來宣告. 定義記錄型別變數:用來說明擁有這種型別的變數,如:
dim stu1,stu2 as stu. 記錄型別變數的賦值和檢索.
vb中exitfor什麼意思vb中for必須和exitfor成對使用嗎
exit for是退出for迴圈用的,你用for next迴圈的時候,達到某種條件需要退出,就加上內exit for就可以退出for迴圈了。容例程 for i 1 to 100 j j 1 if j 50 then exit for end if next dim i as integer for ...
VB中FORMAT是什麼意思,在VB中,Format 是什麼意思,怎麼理解的?
format是cstring類的一個成員函式,它通過格式操作使任意型別的資料轉換成一個字串 datetime是時間型別。返回值是一種格式化後的字元,format裡面可以寫普通的字串,比如 my name is 但有些格式指令字元具有特殊意義,比如 6s vb格式輸出函式可以使數值 日期或字串按指定的...
vb中tab(n)是什麼意思,在vb中「vbtab」 是什麼意思?
tab n 可選的 n 引數是在顯示或列印列表中的下一個表示式之前移動的列數。若省略此引數,則 tab 將插入點移動到下一個列印區的起點。這就使 tab 可用來替換國別中的逗號,此處,逗號是作為十進位制分隔符使用的。tab函式把顯示或列印位置移到由引數n指定的列數。當在一個 print方法中有多個t...