VB基础知识点选编
VB基礎知識點選編
一、VB概述
1、VB中基本概念
類: ???對象: ???方法: ????事件: ???屬性: ???事件過程: ?
理解概念
2、VB的版本:
學習版: ?????????????專業版: ???????????????企業版:
3、VB的三種模式
(1)設計模式
在設計模式下可以進行程序的界面設計、屬性設置、代碼編寫等,標題欄上顯示“設計”,在此模式下不能運行程序,也不能使用調試工具。
(2)運行模式
執行“運行”菜單中的“啟動”命令或單擊工具欄上的啟動按鈕或按F5鍵,即由設計模式進入運行模式,標題欄顯示“運行”,在此階段可以查看程序代碼,但不能修改。若要修改,必須單擊工具欄上的“結束”按鈕,回到設計模式,也可以選擇“中斷”按鈕,進入中斷模式。
(3)中斷模式
??當程序運行時單擊了“中斷”按鈕,或當程序出現運行錯誤時,都可以進入中斷模式,在此模式下,運行的程序被掛起,可以查看代碼、修改代碼、檢查數據。修改結束,單擊“繼續”按鈕可以繼續程序的運行,也可以單擊“結束”按鈕停止程序的執行。
4、VB編碼規則?
(1)語言元素
???VB程序的語言元素主要由:
關鍵字(如: Dim、Print、Cls)
函數(如:Sin()、Cos()Sqr())
表達式(如:Abs(-23.5)+45*20/3 )
語句(如:X=X+5 、 IF……ELSE……END IF)等組成。
(2)VB代碼書寫規則
1) 程序中不區分字母的大小寫,Ab 與AB等效;
2) 系統對用戶程序代碼進行自動轉換:
a)對于VB中的關鍵字,首字母被轉換成大寫,其余轉換成小寫
b)若關鍵字由多個英文單詞組成,則將每個單詞的首字母轉換成大寫
c)對于用戶定義的變量、過程名,以第一次定義的為準,以后輸入的自動轉換成首次定義的形式
3)語句書寫規則
????a)在同一行上可以書寫多行語句,語句間用冒號(:)分隔
????b)單行語句可以分多行書寫,在本行后加續行符:空格和下劃線 _
????c) 一行允許多達255個字符
4)程序的注釋方式
????a)整行注釋一般以 Rem開頭,也可以用撇號 ';
????b)用撇號 ' 引導的注釋,既可以是整行的,也可以直接放在語句的后面,最方便;
????c)可以利用“編輯”工具欄的“設置注釋塊”、“解除注釋塊”來將設置多行注釋。
5、VB文件類型:vbp工程文件 ;frm窗體文件 ;frx保存圖片的文件 ;bas模塊文件 ;
res資源文件 ;cls類模塊文件 ;dsr設計器文件 ;
二、?VB的語言基礎
1.數據類型
VB的標準數據類型
| 數據類型 | 關鍵字 | 類型符 | 前綴 | 存儲空間 | 范圍 | |
| 數值數據類型 | 字節型 | Byte | ?? | Byt | 1 個字節 | 0 到 255 |
| 整型 | Integer | % | Int | 2 個字節 | -32,768 到 32,767 | |
| 長整型 | Long | & | Lng | 4 個字節 | -2,147,483,648 到 2,147,483,647 | |
| 單精度型 | Single | ! | Sng | 4 個字節 | 負數:-3.402823E38 到 -1.401298E-45;正數:1.401298E-45 到 3.402823E38 | |
| 雙精度型 | Double | # | Dbl | 8 個字節 | ||
| 貨幣型 | Currency | @ | Cur | 8 個字節 | ||
| 邏輯型 | Boolean | ?? | Bln | 2 個字節 | True 或 False | |
| 日期型 | Date | ?? | Dtm | 8 個字節 | 100 年1月 1日 到 9999 年 12 月 31 日 | |
| 字符型 | String | $ | Str | 字符串長度 | 1 到大約 65,400 | |
注意:
1)VB中對沒有聲明的變量其缺省的數據類型是變體型,可以用來存儲各種數據,但所占用的內存比其它類型都多。為提高運行效率(整型效率較高),或達到一定的運算精確度(浮點型精度較高,但運行較慢),應合理的定義數據類型。
2)邏輯型數據只有True 和False兩個值,轉換成整型時,True=-1 ,False=0,將其它類型轉換成邏輯型時,非0數轉換為True ,0轉換為False。
3)字符型可以包括所有的西文字符和漢字,字符必須用雙引號括" "起來, 如:"abc123"
4)日期型數據按8字節的浮點數來存儲,日期型數表示方式有兩種:可以用號碼符#括起來。
如:#3/22/2002#????? #2002-3-22 14:30:20#
5)任何數據類型的數組都需要 20 個字節的內存空間,加上每一數組維數占 4 個字節,再加上數據本身所占用的空間。數據所占用的內存空間可以用數據元數目乘上每個元素的大小加以計算。例如,以 4 個 2 字節之 Integer 數據元所組成的一維數組中的數據,占 8 個字節。這 8 個字節加上額外的 24 個字節,使得這個數組所需總內存空間為 32 個字節。
2、VB語言基礎函數InputBox函數與MsgBox函數
1.InputBox函數與MsgBox函數
(1)InputBox函數
語法:x = InputBox (提示, 標題, 默認值, x坐標, y坐標, 幫助文件, 內容)
??其中,提示是提示的字符串,這個參數是必須的。標題是對話框的標題,是可選的。默認值是文本框里的缺省值,也是可選的。X坐標與y坐標決定輸入框的位置。幫助文件, 內容用于顯示與該框相關的幫助屏幕。返回值x將是用戶在文本框里輸入的數據,x是一個字符串類型的值。如果用戶按了Cancel鈕,則 x 將為空字符串。
(2)MsgBox函數
??? 語法:Action = MsgBox (msg, type, title)
| 數值 | 符號常量 | 意義 |
| 0 | vbOKOnly | 只顯示 Ok 按鈕 |
| 1 | vbOKCanc?el | 顯示 Ok?? Cancel 按鈕 |
| 2 | vbAbortRetryIgnore | 顯示 Abort??? Retry??? Ignore 按鈕 |
| 3 | vbYesNoCancel?? | 顯示 Yes?? No? Cancel 按鈕 |
| 4 | vbYesNo?? | 顯示 Yes?? No 按鈕?? |
| 5 | vbRetryCancel | 顯示 Retry Cancel 按鈕 |
| 16 | vbCritical?? | Stop Sign對極其重要的問題提醒用戶 |
| 32 | vbQuestion | Question Mark增亮沒有危險的問題 |
| 48 | vbExclamation | Exclamation Mark強調警告用戶必須知道的事情 |
| 64 | vbInformation | Information Mark可以使乏味的信息變得有趣 |
| 0 | vbDefaultButton1 | 第一個按鈕缺省 |
| 256 | vbDefaultButton2 | 第二個按鈕缺省 |
| 512 | vbDefaultButton3 | 第三個按鈕缺省?? |
Action的值
| 返回值 | 含義 | 返回值 | 含義 |
| 1 | 選擇 Ok 按鈕 | 5 | 選擇 Ignore 按鈕 |
| 2 | 選擇 Cancel 按鈕 | 6?? | 選擇 Yes 按鈕 |
| 3 | 選擇 Abort 按鈕 | 7 | 選擇 No 按鈕 |
| 4 | 選擇 Retry 按鈕?? | ?? | ?? |
3、常用的日期與時間函數
| 函數名 | 含義 | 示例 | 結果 | |
| Date () | 返回系統日期 | Date () | 02-3-19 | |
| Time() | 返回系統時間 | Time() | 3:30 :00 PM | |
| Now | 返回系統時間和日期 | Now | 02-3-19 3:30 :00 | |
| Month(C) | 返回月份代號(1-12) | Month("02,03,19") | 3 | |
| Year(C) | 返回年代號(1752-2078) | Year("02-03-19") | 2002 | |
| Day(C) | 返回日期代號(1-31) | Day("02,03,19") | 19 | |
4. 轉換函數
| 函數名 | 功能 | 示例 | 結果 |
| Str (x) | 將數值數據x轉換成字符串 | Str (45.2) | ??? "45.2" |
| Val(x) | 將字符串x中的數字轉換成數值 | Val("23ab") | ???? 23 |
| Chr(x) | 返回以x為ASCII碼的字符 | Chr(65) | ???? "A" |
| Asc(x) | 給出字符x的ASCII碼值,十進制數 | Asc("a") | ????? 97 |
| Int(x) | 取小于等于x的最大整數 | Int(-3.5) Int(3.5) | -4 3 |
| Fix(x) | 將數值型數據x的小數部分舍去 | Fix(-3.5) | ???? - 3 |
5.??字符函數
(1)字符串編碼
???? 一個漢字在計算機內存中占2個字節,一個西文字符(ASCII碼)占1個字節?
(2)常用的字符串函數
| 函數名 | 功能 | 示例 | 結果 | |
| Len(x) | 求x字符串的字符長度(個數) | Len("ab技術") | 4 | |
| LenB(x) | 求x字符串的字節個數 | LenB("ab技術") | 8 | |
| Left(x,n) | 從x字符串左邊取n個字符 | Left("ABsYt",2) | "AB" | |
| Right(x,n) | 從x字符串右邊取n個字符 | Right("ABsYt",2) | "Yt" | |
| Mid(x,n1,n2) | 從x字符串左邊第n1個位置開始向右取n2個字符 | Mid("ABsYt",2,3) | "BsY" | |
| Ucase(x) | 將x字符串中所有小寫字母改為大寫 | Ucase("ABsYug") | ABSYUG | |
| Lcase(x) | 將x字符串中所有大寫字母改為小寫 | Ucase("ABsYug") | absyug | |
| Ltrim(x) | 去掉x左邊的空格 | Lrim("??? ABC??? ") | "ABC??? " | |
| Rtrim(x) | 去掉x右邊的空格 | Trim("??? ABC??? ") | "??? ABC" | |
| Trim(x) | 去掉x兩邊的空格 | Trim("??? ABC??? ") | "ABC" | |
| Instr(x,"字符", M) | 在x中查找給定的字符,返回該字符在x中的位置,M=1不區分大小寫,省略則區分 | Instr("WBAC","B") | 2 | |
| String(n,"字符") | 得到由n個首字符組成的一個字符串 | String(3,"abcd") | "aaa" | |
| Space (n) | 得到n個空格 | Space (3) | "□□□" | |
6、?數學函數
VB中常用的數學函數
| 函數名 | 功能 | 示例 | 結果 |
| Sqr(x) | 求平方根 | Sqr(9) | 3 |
| Log(x) | 求自然對數,x>0 | Log(10) | 2.3 |
| Rnd(x) | 產生一個在(0,1)區間均勻分布的隨機數,每次的值都不同;若x=0,則給出的是上一次本函數產生的隨機數 | Rnd(x) | 0-1之間的數 |
| Sin(x) | 求x的正弦值,x的單位是弧度 | Sin(0) | 0 |
| Cos(x) | 求x的余弦值,x的單位是弧度 | Cos(1) | 0.54 |
| Tan(x) | 求x的正切值,x的單位是弧度 | Tan(1) | 1.56 |
| Atn(x) | 求x的反正切值,x的單位是弧度,函數返回的是弧度值 | Atn(1) | 0.79 |
7.表達式
(1)表達式的組成
?? 表達式由常量、變量、運算符、函數和圓括號按一定的規則組成,通過運算后有一個結果,運算結果的類型由數據和運算符共同決定。
(2)表達式的書寫規則
1)乘號不能省略
2)括號必須成對出現,均使用圓括號,可以嵌套,但必須配對。
3)表達式從左到右在同一基準上書寫,無高低、大小之分。
例:sqr((3*x+y)-z)/(x*y)^4
(3)不同數據類型的轉換
操作數的數據類型應該符合要求,不同的數據應該轉換成同一類型。在算術運算中,如果操作數的數據精度不同,VB規定運算結果采用精度較高的數據類型。
(4)優先級
同一表達式中,不同運算符的優先級是:算術運算符 > 字符運算符 > 關系運算符 > 邏輯運算符
注意:對于存在多種運算符的表達式,可增加圓括號改變優先級或使表達式更清晰。
三、VB語言基礎關系運算符\邏輯運算符
關系運算符
| 運算符 | 含義 | 示例 | 結果 |
| = | 等于 | "ABCDE"="ABR" | False |
| > | 大于 | "ABCDE">"ABR" | False |
| >= | 大于等于 | "bc">="大小" | False |
| < | 小于 | 23<3 | False |
| <= | 小于等于 | "23"<="3" | True |
| <> | 不等于 | "abc"<>"ABC" | True |
| Like | 字符串匹配 | "ABCDEFG" Like "*DE*" | True |
| Is | 對象引用比較 | ?? | ?? |
注意:
1)如果兩個操作數都是數值型,則按其大小比較
2)如果兩個操作數都是字符型,則按字符的ASCII碼值從左到右一一比較
3)漢字字符大于西文字符
4)關系運算符的優先級相同
5)VB6.0中Like運算符與通配符的使用:
?——表示任何單一字符
*——表示0個或多個字符
#——表示任何一個數字(0 - 9)
[字符列表]——表示字符列表中的任何單一字符
[!字符列表]—— 表示不在字符列表中的任何單一字符
(4) 邏輯運算符
| 運算符 | 含義 | 優先級 | 說明 | 示例 | 結果 | ||||||
| Not | 取反 | 1 | 當操作數為假時,結果為真 | Not??? F Not??? T | T F | ||||||
| And | 與 | 2 | 兩個操作數均為真時,結果才為真 | T??? And??? T F??? And??? F T??? And??? F F??? And??? T | T F F F | ||||||
| Or | 或 | 3 | 兩個操作數中有一個為真時,結果為真 | T??? Or??? T F??? Or??? F T??? Or??? F F??? Or??? T | T F T T | ||||||
| Xor | 異或 | 3 | 兩個操作數不相同,結果才為真,否則為假 | T??? Xor??? F T??? Xor??? T | T F | ||||||
| Eqv | 等價 | 4 | 兩個操作數相同時,結果才為真 | T??? Eqv??? F T??? Eqv??? T | F T | ||||||
| Imp | 蘊含 | 5 | 第一個操作數為真,第二個操作數為假時,結果才為假,其余都為真 | T??? Imp??? F T??? Imp??? T | F T | ||||||
說明:
1)若有多個條件時,And必須全部條件為真才為真;Or只要有一個條件為真就為真。
2)如果邏輯運算符對數值進行運算,則以數字的二進制值逐位進行邏輯運算。And運算常用于屏蔽某些位;Or運算常用于把某些位置1。
如:12 And 7??表示對1100與0111進行And運算,得到二進制值100,結果為十進制4。
3)對一個數連續進行兩次Xor操作,可恢復原值。在動畫設計中,用Xor可恢復原來的背景。
四、常量與運算符
1、常量
1)直接常量
指在程序中直接給出值的數據,如:123、123&、123.45、1.234E2 、123D3分別表示整型、長整型、單精度浮點型(小數形式)、單精度浮點型(指數形式)、雙精度浮點型。
八進制常數:??在數值前加&O?,如??? &O123
十六進制常數:在數值前加&H?,如&H123
2)用戶聲明的符號常量
??????用Const來聲明:??Const??符號常量名 [As?類型] =?表達式
?如:Const??? PI=3.14159?? '聲明了常量PI,代表3.14159,單精度型
Const??? MAX As Integer=&O144??? '聲明了常量MAX,代表八進制數144,整型
Const??? COUNT#=45.67??????? '聲明了常量COUNT,代表45.67,雙精度型
3)系統提供的常量
系統定義的常量位于對象庫中,在對象瀏覽器中的Visual Basic(VB)和Visual Basic for Aplication(VBA)等對象庫中列出了VB的常量。這些常量可以與應用程序的對象、方法、屬性一起使用。
如:Form1.WindowsState=vbMaximized 表示將窗口極大化。
2.?運算符
(1)算術運算符
| 運算符 | 含義 | 優先級 | 示例 | 結果 | ||||||
| ^ | 乘方 | 1 | Ia^2 | 9 | ||||||
| - | 負號 | 2 | -iA | -3 | ||||||
| * | 乘 | 3 | IA* iA* iA | 27 | ||||||
| / | 除 | 3 | 10/iA | 3.33333333333333 | ||||||
| \ | 整除 | 4 | 10\iA | 3 | ||||||
| Mod | 取模 | 5 | 10 Mod iA | 1 | ||||||
| + | 加 | 6 | 10+iA | 13 | ||||||
| - | 減 | 6 | IA-10 | -7 | ||||||
???說明:設表中的變量iA=3, 為整型。
???算術運算符兩邊的操作數應該是數值型,若是數字字符或邏輯型,則自動轉換為數值類型后再運算。
(2)字符串運算符
| 運算符 | 作用 | 區別 | 示例 | 結果 |
| & | 將兩個字符串拼接起來 | 連接符兩旁的操作數不管是字符型還是數值型,系統先將操作數轉換成字符,然后再連接。 | "123"&55 "abc"+12 | "12355" "abc12" |
| + | 連接符兩旁的操作數均為字符型;若均為數值型則進行算術加法運算;若一個為數字字符型,一個數值型,則自動將數字字符轉換為數值,然后進行算術加;若一個為非數字字符型,一個數值型,則出錯。 | "123"+55 "abc"+12 | 178 出錯 |
五、變量與常量
1變量或常量的命名規則
1) 必須以字母或漢字開頭,由字母、漢字、數字或下劃線組成,長度≤255個字符;
2) 不能使用VB中的關鍵字,并盡量不與VB中標準函數名同名;如:Dim 、Sin
3)VB中不區分變量的大小寫,一般變量首字母用大寫,其余用小寫;常量全部用大寫字母表示
4)為了增加程序的可讀性,可在變量名前加一個縮寫的前綴來表明該變量的數據類型。
2變量聲明
?1)用Dim語句進行顯式聲明
?? ?語句形式: Dim??變量名 [As?類型]?
如:?Dim??? intX??? As integer
?????說明·如果沒有As?類型,則默認為變體類型。
·可在變量名后加類型符來代替As?類型??如: Dim??? intX%?
·一條語句可以同時定義多個變量,但每個變量必須有自己的類型聲明,類型聲明不能共用;
·字符串變量根據其存放的長度是否固定,定義方法不同:
?????定長字符串:??Dim??strA As??? String*10?//表示最多存放10個字符,如果賦值不足10個,則右補空;若多于10個,則多余部分截去。
????? 不定長字符串:Dim strA??As??? String ???//最多可存放2MB個字符
2) 隱式聲明
VB中允許變量不經過聲明就直接使用,這種稱為隱式聲明,所有隱式聲明的變量都是變體型的。
隱式聲明容易造成錯誤,為了調試程序方便,一般對使用的變量都進行聲明,可以在通用聲明段使用Option??? Explicit 語句來強制顯式聲明所有變量。
六、VB程序的控制結構
1.?條件函數?
(1)if函數
??? 函數形式: Iif(表達式,當條件為True時的值,當條件為False時的值
例:求X、Y中大的數,并放入變量Tmax中:???Tmax=Iif(X>Y, X, Y)
(2)If……Then……ElseIf語句(多分支結構)?
語句形式:???????????????????????????????
If??? <表達式1>??? Then?
<語句塊1>
ElseIf??? <表達式2>??? Then?
<語句塊2>
?……
[ Else 語句塊 n+1 ]?
?End If?
注意?:
1)不管有幾個分支,程序執行了一個分支后,其余分支不再執行;
2)ElseIf??不能寫成Else??? If?
?3)當多分支中有多個表達式同時滿足,則只執行第一個與之匹配的語句塊
例:已知變量strC中存放了一個字符,判斷該字符是字母字符、數字字符還是其他字符。
(3)If語句的嵌套
?????If語句的嵌套是指if 或else后面的語句塊中又包含If語句。語句形式:
????? If??? <表達式1>??? Then
If??? <表達式11>??? Then?
?……?
? End If?
?……?
End If?
注意:?
1)對于嵌套結構,為了增強程序的可讀性,應該采用縮進形式書寫;
2)If語句形式若不在一行上書寫,必須與End If配對,多個if嵌套,End If與它最接近的Emd If配對。
2. Select Case語句(情況語句)? 是多分支語句的又一種形式,語句形式:
Select Case 變量或表達式
Case??表達式列表1?
? 語句塊1
? Case??表達式列表2
語句塊2?
? ……
[Case Else
??????? 語句塊n+1]
End Select
說明:
1)變量或表達式可以是數值型或字符串表達式
??2)表達式列表I 可以是表達式、一組用逗號分隔的枚舉值、表達式1 to 表達式2、Is關系運算符表達式;如:case? 1 to 10、case? "a","w","e","t"、case? 2,4,6,8,is>10
??3)并不是所有的多分支結構都可以用情況語句代替的。
3.?For循環語句(知道循環次數的計數型循環)
語句形式: For??循環變量 = 初值To 終值??[ Step??步長]
語句塊
????????????[Exit For]?
????????????????語句塊
????????????Next??循環變量
說明:1) 循環變量必須為數值型
2)步長一般為正,初值小于終值;若為負,初值大于終值;缺省步長為1;
3)語句塊可以是一句或多句語句,稱為循環體;
4)Exit For 表示當遇到該語句時,退出循環體;
執行Next的下一句;
循環次數=int((終值 - 初值)/步長+1)
5)退出循環后,循環變量的值保持退出時的值;
6)在循環體內對循環變量可多次引用,但不要對其賦值,否則影響結果。?
3.?Do……Loop循環(不知道循環次數的條件型循環)?
是用于控制循環次數未知的循環結構,語法形式有兩種:?
形式1:Do While …… Loop
Do?[ While | Until 條件?]
?語句塊
?[?Exit??? Do ]
?語句塊
?Loop
形式2:Do …… Loop While?
?Do
?語句塊
?[?Exit??? Do ]
?語句塊
?Loop [ While | Until 條件?]?
說明:
1)形式1為先判斷后執行,有可能一次也不執行;
2)形式2為先執行后判斷,至少執行一次;
3)關鍵字While 用于指明條件為真時就執行循環體中的語句,Until剛好相反;
4)當省略了While|Until 條件字句,即循環結構僅由 Do……Loop關鍵字構成時,表示無條件循環,這時循環體內應該有Exit Do語句,否則為死循環;
5)Exit Do 語句表示當遇到該語句時,退出循環,執行Loop的下一語句。
4.?循環的嵌套
指在循環體內又包含了一個完整的循環結構。循環嵌套對For 循環和Do……Loop循環均適用。
七、VB中的一維數組
1.數組
數組由多個同類型的元素組成,用同一個名字,不同下標,標識數組中不同元素.
數組中的每個變量稱為數組元素.
只有一個下標的數組稱一維數組,表示方法:數組名(下標),下標值是整型數.
2.數組的定義
數組必須先定義,再使用.
格式:Public|Static|Dim|Private|ReDim數組名(上界|下界TO上界)[As數據類型]
其中Static ?ReDim只能在函數或過程內部定義
在VB中,不寫下界,默認為0。可在程序的通用對象聲明部分用Option Base1聲明數組的下界為1。
3.數組元素的使用
在VB中,不能使用整個數組,只能引用其元素.數組元素的表示形式為:數組名(下標).
4.數組的初始化
數組的初始化就是給數組各元素賦初值.
可用:數組名=Array(數組元素值)
給數組各元素賦初值.
5.數組元素的輸入
利用FOR循環語句和INPUTBOX函數輸入
6.數組的輸出
數組元素可用PRINT方法來實現
7、數組元素的復制
單個數組元素可以像簡單變量一樣從一個數組復制到另一個數組,也可以復制給一個數組的中的某個元素。復制整個數組,仍要用到FOR語句。
總結
- 上一篇: 写出C语言中5种数据类型的名称及其关键字
- 下一篇: 三角形外接球万能公式_三棱锥外接球半径公