VB學習筆記--基礎

來源:互聯網
上載者:User

沒想到現在突然要用VB,只好現學。邊看書邊做筆記,記錄了一些基礎知識。

1.資料類型
1)不能在過程中聲明公用變數,只能在模組中的聲明段中聲明公用變數。
2)當出現公用變數和局部變數同名時,過程中優先訪問局限性大的變數。即過程中直接調用的為局部變數,調用公用變數時使用模組名+變數名。

3)常量定義:[Public|Private]Const <name> [As <type>] = <expression>

4)+:兩個常數相加,兩個字串相連。如果兩個值中出現數安VB首先試圖把字串變成數,可能會出現錯誤
    &:確保操作是字串串連

5)Date/Time類型用一對“#”括起來

6)數組的聲明:
Dim ArrayName(14) As Integer  聲明一個15個無素的數值,索引號是從0到14。與C++有所不同,C++是聲明大小時數值是數組的大小,而不是最後一個索引號。
Dim ArrayName(1 To 15) As Integer 聲明一個15個無素的數值,索引號是從1到15。C++好像無此種方法。

7)數組的改變大小ReDim關鍵字,但是如果直接用會丟失以前所存的數值,要儲存時需和Preserve一起使用
如:ReDim Preserve Array(UBound(Array)+1)  UBound是擷取數值上限的函數。
只能改變上限。當改變的上限小於原上限時,刪除的資料會丟失。

2.Sub,Function
Sub無傳回值,Function可傳回值
Function的傳回值以函數名形式返回
例:
Function GetValue() As Integer
 ...
 GetValue=5
 End Function
 ...
End Function

3.過程參數
ByVal 參數按值傳遞,過程中傳遞的只是變數的副本,不影響變數本身。
ByRef 預設的參數,按地址傳遞,過程永遠改變變數。
Optional 表示參數不是必需的。注意,如果使用ParamArray則不能使用Optional,而且如果某個參數用了Optional,則後面的參數也必須使用Optional。 在過程中可用IsMissing()判定參數是否未傳入
ParamArray 參數個數不定時使用。

與C++和C#不同。C++預設的是按值傳遞,如要按地址傳遞則需要使用指標。C#預設的也為按值傳遞,按地址傳遞則需要使用Ref參數

4.過程的調用
Call Sub(arg1,arg2,...)
或 Sub arg1,arg2,.....

CallFunction(arg1,arg2,....)
Function arg1,arg2,.....

如果不按參數順序賦值,則用如下方法:Sub arg2:=...,arg1:=... 

5.If...else的結構
If ... Then
...
ElseIf ... Then
...
Else
...
End If (單行格式可以不用End If語句,多行必須使用)
與C++的If else類似

6.Select Case的結構
Select Case ...
 Case ...
  ...
 .........
 Case Else
  ...
End Select
與C++的Switch case類似
  
7.Do ... Loop結構
(1)
Do While ...
 ......
Loop

Do Until ...
 ......
Loop

當條件為True時執行,為False時退出,如果條件一開始為False則一次也不執行
與C++的While類似

(2)
Do
 .......
Loop While ...

Do
 ......
Loop Until ...

至少會執行一次
與C++的Do ... while(...)類似

8.For ... Next結構
For <counter> = <start> To <end> [Step <increment>]
 <statement>
Next <counter>

increment預設為1

9.For Each ... Next結構
For Each <element> In <group>
 <statement>
Next <element>
注意幾點限制:
對集合,element只能是Variant或一般的Object,或“物件瀏覽器”中列出的對象
對數組,element只能是Variant
不能用於使用者自訂類型

10.退出控制結構
For迴圈中使用 Exit For;Do迴圈中使用 Exit Do
從子過程Sub中退出使用 Exit Sub;從函數過程Function中退出 Exit Function

11.使用對象
設定屬性:object.property = expression
擷取屬性:variable = object.property
執行方法:object.method

12.對象集合
常用集合:
Forms:包含載入的表單
Controls:包含表單上的控制項
Printers:包含可用的印表機對象

從集合中指定成員:名稱或索引
如:Controls("List1"),Controls!List1,Controls(3)

容器:表單內可用Container屬性改變對像的容器(待細查)

13.建立對象
{Dim|ReDim|Static|Private|Public}<varibale> AS [New] <class>
賦值:Set <variable> = <object>

特定物件類型:引用特定類型的對象和類。如:Dim anyText As TextBox
一般物件類型:可在多種特定物件類型中引用其中一種。如:Dim anyControl As Control
VB中有四種一般對象:
Form:程式中任何表單(包括MDI子表單和MDI表單)
Control:程式中任何控制項
MDIForm:程式中的MDI表單
Object:任何對象

14.使用New關鍵字
可用New建立自訂類的新執行個體,如:
 Dim x As New Form1
也可將New與Set語句並用,而且能加快運行速度,如:
 Dim x As Form1
 Set x = New Form1
可用New從類模板中定義的類建立集合和對象。方法同上兩種情況。

15.New的限制
1)不能用於基礎資料型別 (Elementary Data Type)的變數,如:Dim X As New Integer
2)不能用於任何一般類型的變數,如:Dim X As New Control
3)不能用於任何特定控制項類型的變數,如:Dim X As New ListBox
4)不能用於特定控制項的變數,如:Dim X As New lstNames

16.釋放對對象的引用是一個好習慣
用Unolad從記憶體中卸載表單或控制項
用Nothing釋放物件變數佔用的資源。用Set語句將Nothing賦予物件變數

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.