發新話題

Visual Basic 教學 - 《關於變數》變數

Visual Basic 教學 - 《關於變數》變數

變數
在 Visual Basic 中,當執行應用程式期間,您可能會用變數暫存數值。變數必須有名稱 (用來引用該變數所包含的值) 和資料型態 (決定變數可以儲存的資料種類)。
您可以把變數看作記憶體中存放未知數值的預留位置。舉例而言,假定您正為水果舖撰寫一個統計蘋果銷售的軟體。在銷售實際發生之前,您並不知道蘋果的價格和銷量。此時,您可以用兩個變數來儲存未知的數值,並將它們命名為 ApplePrice 和 ApplesSold。每當執行程式時,使用者才提供這兩個變數的具體數值。要計算總銷售額,並且將結果顯示在名稱為 txtSales 的文字方塊中,程式碼應該是這樣的:
txtSales.txt = ApplePrice * ApplesSold每次根據使用者提供的數值,這個運算式會傳回不同的金額。由於有了變數,您就可以設計一個運算式,而不必事先知道實際的輸入是多少。
在這個例子中,ApplePrice 的資料型態是貨幣,而 ApplesSold 的資料型態是整數。變數還可以表示其它的數值,比如:文字、日期、各種數值型態,甚至物件也可以。
儲存和擷取變數中的資料
您可用指定陳述式進行計算,並將結果指定給變數。
ApplesSold = 10      ' 將 10 指定給變數。ApplesSold = ApplesSold + 1      ' 變數值加一。請注意,範例中的等號是指定運算子,而不是等於運算子;它是將數值 (10) 指定給變數 (ApplesSold)。
宣告變數(Declaration)
宣告變數就是事先將變數的相關資訊通知給程式知道。您可用 Dim 陳述式宣告變數,並指定變數名稱:
Dim variablename [As type]
在程序內部使用 Dim 陳述式宣告的變數,只有在該程序執行時才存在。程序一結束,該變數的值也就消失了。此外,程序中的變數值對程序來說是區域性的,也就是說,您無法在一個程序中存取另一個程序中的變數。由於這個特點,您就可以在不同程序中使用相同的變數名稱,而不必擔心名稱衝突的問題。
變數名稱:
  • 必須以字母開頭。

     
  • 無法包含句號或者型態宣告字元。

     
  • 不得超過 255 個字元。

     
  • 在同一個有效範圍內必須是唯一的。有效範圍就是變數可以被引用的區域,例如程序、表單等等。
Dim 陳述式中的選擇性 As type 子句可以讓您定義變數的資料型態或物件型態。資料型態定義了變數所儲存資訊的型態。舉例而言,String、Integer 和 Currency 等都是資料型態。變數的型態也可以是來自 Visual Basic 或其它應用程式的物件。Object、Form1 和 TextBox 都是 Visual Basic 物件型態或物件類別的範例。
詳細資訊 關於物件的詳細資訊,請參閱〈運用物件〉和〈運用元件〉。本章稍後的〈資料型態〉一節將會詳細討論資料型態。
宣告變數的其它方式:
  • 不在程序內部,而在表單、一般或物件類別模組的宣告區塊中宣告變數,這將使變數對模組中的所有程序有效。

     
  • 使用 Public 保留字宣告變數,這將使變數在整個應用程式中都有效。

     
  • 使用 Static 保留字宣告一個區域變數,即使程序結束,變數值仍然會保留著。
隱含宣告(Implicit Declaration)
在使用一個變數之前,您並不必先宣告這個變數。舉例而言,您可以撰寫如下列所示的函數,如此在使用變數 TempVal 之前就不必先宣告它。
Function SafeSqr (num)   TempVal = Abs (num)   SafeSqr = Sqr (TempVal)End FunctionVisual Basic 會用這個名稱自動建立一個變數,使用這個變數時可以把它當成已明確宣告。雖然這種方法很方便,但是如果把變數名稱拼錯了的話,會導致一個難以察覺的錯誤。舉例而言,假定您寫了這樣一個函數:
Function SafeSqr (num)   TempVal = Abs (num)   SafeSqr = Sqr (TemVal)End Function乍看起來,這兩段程式碼好像是一樣的。但是因為在倒數第二行把 TempVal 變數名稱拼錯了,所以函數總是傳回 0。當 Visual Basic 遇到新名稱時,它無法分辨您是想隱含宣告一個新變數呢,還是您把一個現有的變數名稱寫錯了,於是只好再用這個名稱建立一個新變數囉。
明確宣告(Explicit Declaration)
為了避免拼錯變數名稱所引起的種種麻煩,您可以事先設定,只要遇到一個未經明確宣告的變數名稱,Visual Basic 就會發出警告。
明確宣告變數
  • 在物件類別模組、表單模組或一般模組的宣告區塊中可加入這個陳述式: Option Explicit- 或 -
    在「工具」功能表中選取「選項」,按一下「編輯器」頁籤,再選定「要求變數宣告」選項。這樣就會在任何新模組中自動插入 Option Explicit 陳述式,但不會在已建立的模組中插入;所以在專案內部,只能用手動方法在現有模組中新增 Option Explicit 陳述式。
如果此陳述式在包含 SafeSqr 函數的表單或一般模組中已經生效,那麼 Visual Basic 將認定 TempValTemVal 都是未經宣告的變數,並為兩者發出錯誤訊息。您可以明確宣告 TempVal
Function SafeSqr (num)   Dim TempVal   TempVal = Abs (num)   SafeSqr = Sqr (TemVal)End Function因為 Visual Basic 對拼錯的 TemVal 會顯示錯誤訊息,所以您會立刻明白發生什麼問題。由於 Option Explicit 陳述式有助於發現這類型態的錯誤,所以建議您最好在所有程式碼中善加利用。
附註 Option Explicit 陳述式的運作範圍僅限於陳述式所在模組,所以,對每個需要 Visual Basic 強制明確宣告變數的表單模組、一般模組及物件類別模組,您必須將 Option Explicit 陳述式放在這些模組的宣告區塊中。如果您選取「要求變數宣告」,Visual Basic 會在下個表單模組、一般模組及物件類別模組中自動插入 Option Explicit,但不會將它新增到現有程式碼中。您必須在專案中透過手動才能將 Option Explicit 陳述式加到任何現有模組中。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。