跳到內容

Visual Basic/入門

來自華夏公益教科書,自由的教科書

Hello World

[編輯 | 編輯原始碼]

VB 中最簡單的程式是這個

  Public Sub Main()
      MsgBox("Hello World!")
  End Sub

要建立這個程式,請按照以下步驟操作

  • 啟動 VB
  • 將出現一個“新建專案”視窗。選擇“標準.exe”,然後單擊“開啟”。
  • 開啟 VB 的“專案”選單,然後單擊“新增模組”。
  • 將上面顯示的 Main 子例程複製或輸入到新的程式碼模組中。
  • 再次轉到 VB 的“專案”選單,然後單擊“Project1 屬性”項(應該是選單中的最後一項)。
  • 在“專案屬性”對話方塊中,您應該找到一個名為“啟動物件”的下拉列表,單擊它並選擇“Sub Main”。
  • 轉到“執行”選單,然後單擊“啟動”(或按 F5)來執行程式。VB 可能會詢問您是否要儲存,這次只需說“否”。

正在執行的程式將在一個小訊息視窗中顯示“Hello World!”字樣。

Visual Basic 整合開發環境

[編輯 | 編輯原始碼]

Visual Basic 整合開發環境 (IDE) 是微軟開發的一個程式,用於建立、測試和部署 Visual Basic (VB) 程式。VB 程式可以使用其他文字編輯器編寫,然後由程式設計師將其轉換為可執行程式碼(編譯和連結)。VB IDE 允許程式設計師編寫程式碼並立即對其進行測試,根據需要(動態)將源程式轉換為可執行程式碼。顧名思義,建立、編輯、編譯和連結都整合在這個開發環境中。

IDE 視窗的頂部顯示了 VB 的選單欄(見截圖)。常見選單類別(檔案、編輯、幫助等)以及特定於建立程式碼的專案(專案、除錯、執行)提供了 IDE 的文字介面。常用選單項以工具欄按鈕的形式直接顯示在選單欄下方。

Microsoft Visual Basic 6 整合開發環境的螢幕截圖

建立程式的兩個部分:使用窗體和控制元件設計使用者介面,以及編寫原始碼;在 IDE 中佔據了大部分空間。在初始配置中,IDE 的應用程式空間中還會出現四個可停靠視窗:專案資源管理器屬性視窗窗體佈局視窗工具箱。這些視窗和其他提供的視窗可以浮動在 IDE 之上,也可以停靠在 IDE 應用程式空間的側面、頂部或底部,以方便程式設計師使用。單擊可停靠視窗的標題欄並將其拖動,就可以隨意停靠或取消停靠視窗。

可用性

[編輯 | 編輯原始碼]

截至 2008 年 4 月 8 日,微軟不再為 Visual Basic 6.0 IDE 提供支援。 [1] 儘管如此,Visual Basic 6 仍然可以透過 MSDN 訂閱獲取,名稱為“Visual Studio 6”。[2]

視覺化編輯

[編輯 | 編輯原始碼]

VB 程式分為兩個檢視:使用者介面的視覺化設計和程式碼編輯器。視覺化介面是透過將工具箱中的控制元件新增到窗體佈局視窗中建立的。要將控制元件新增到窗體:單擊工具箱中所需的控制元件,然後單擊並拖動它在窗體佈局視窗中窗體表示形式上的邊界矩形。在您完成單擊並拖動操作後釋放滑鼠按鈕,所選控制元件將出現在窗體上。

窗體佈局視窗中單擊控制元件或窗體將突出顯示該控制元件(或窗體),並帶有大小調整手柄。您可以使用大小調整手柄更改控制元件的“左”、“上”、“高”和“寬”屬性,或更改窗體的“高”和“寬”屬性。突出顯示的控制元件可以透過單擊控制元件並將其拖動到適當位置來拖動到窗體上的其他位置。突出顯示的控制元件也可以複製和貼上,以在窗體上覆制其他相同的控制元件。單擊並拖動多個控制元件(套索操作)將突出顯示它們,使它們作為一個組,然後可以將它們作為一個組移動,或者複製和貼上作為一個組,根據需要操作。

程式碼編輯

[編輯 | 編輯原始碼]

程式碼編輯使用程式碼模組視窗完成。程式碼模組視窗的標題文字顯示了專案和模組名稱。兩個下拉列表顯示了該模組可訪問的物件(通用)和與“通用”列表中選定物件關聯的子例程(宣告)。在窗體的程式碼模組中,“通用”列表將列出放置在窗體上的所有控制元件。每個控制元件都有一組自己的事件和方法,這些事件和方法將在選擇任何控制元件時填充“宣告”列表。這兩個視窗結合起來幫助程式設計師在程式中定位特定事件和方法的程式碼。在小型程式中,可以透過上下滾動編輯器來找到所需的例程進行操作。在大型程式中,找到正確的位置可能要困難得多,而這兩個列表可以通過幾次滑鼠點選將程式設計師帶到所需的位置。

程式碼編輯器可以將程式顯示為一個長文字文件,或者可以一次顯示程式中的一個例程。程式碼模組視窗左下角的兩個按鈕允許程式設計師設定自己的檢視首選項。

程式碼編輯器可以透過移動編輯區域右上角的小條來拆分為兩個檢視。兩個檢視顯示了同一個程式碼模組的兩個不同檢視。同樣,在大型程式中,在模組的某個部分上工作時,同時檢視模組中的另一部分程式碼可能會有所幫助。拆分檢視模式允許程式設計師在建立新的方法或函式時,同時保持程式碼的某個部分處於檢視狀態。

VB 專案檔案

[編輯 | 編輯原始碼]

程式碼模組和窗體分別儲存為專案資料夾中的文字文件。檔名副檔名(.xxx)用於標識檔案包含的模組型別。專案檔案(.vbp)描述了整個專案,命名了建立程式所需的所有檔案。如果正確安裝了 VB,雙擊專案檔案將把整個專案載入到 VB IDE 的新例項中,而雙擊窗體(.frm)或模組(.bas)或類(.cls)或控制元件(.ctl)檔案將把該檔案載入到 IDE 的新例項中。通常,從多檔案專案(專案檔案除外)載入單個檔案不會包含執行程式所需的所有資訊。但是,在許多情況下,簡短的測試程式碼(編寫用於測試一些小想法的程式碼)最好儲存在自己的模組(和檔案)中,這樣可以隨意載入和丟棄。此類程式碼可以新增、刪除或編輯,直到它完善(除錯)並複製到實際程式模組中。

立即視窗

[編輯 | 編輯原始碼]

在測試程式的正確性(通常稱為除錯)時,檢視計算的中間結果或檢查傳遞給子例程的值通常很有幫助。設定斷點可以在特定行停止程式,就像將列印的值傳送到另一個視窗一樣。VB 提供了一個名為立即視窗的可停靠文字視窗。它在“檢視”選單下可用,或者您可以按 CTRL+G 撥出它。它被稱為立即視窗,因為它可以用來立即執行 BASIC 命令。例如

Print Atn(1) * 4

當您在立即視窗中鍵入該行並按 Enter 鍵時,VB 會將該行解釋為 VB 命令並執行該命令。在這種情況下,它會在命令後的下一行列印數字 3.14159265358979。(為了方便起見,在大多數情況下,問號可以代替 Print 命令。)

您可以使用 Debug 物件的 Print 方法從正在執行的程式中向同一個視窗傳送文字。

Private Sub Text1_KeyPress(KeyAscii As Integer)
    Debug.Print Chr(KeyAscii), KeyAscii
End Sub

在這種情況下,如果某個窗體上有一個名為 Text1 的文字框,使用者在文字框中輸入的每個字母都會回顯到立即視窗,以及它的數字 ASCII 值。

由於文字是使用 Debug 物件傳送到立即視窗的,因此許多人將立即視窗稱為除錯視窗。您可能在本文件中以這兩種方式找到它。

IDE 注意事項

需要注意的是,使用 VB IDE 執行程式與執行獨立的可執行程式並不完全相同。在 IDE 內執行的程式作為 IDE 的子程序執行。與作為子程序執行相關的有一些細微的連線和計時問題。然而,總的來說,在 IDE 中執行的程式看起來和感覺起來都像完成的程式,但要完全測試使用者將看到的程式,建議建立程式的可執行檔案(.exe)並測試其正確性和可用性。

Visual Basic 程式的組成部分

[edit | edit source]

窗體

[edit | edit source]

窗體是一個視窗,其中放置了供程式使用者使用的控制元件。.Caption 屬性更改視窗標題欄上的文字,.MinButton 和 .MaxButton 屬性顯示或隱藏最小化和最大化按鈕。不同的視窗樣式,例如對話方塊、工具視窗和標準窗體;以及一些允許的使用者操作,例如調整大小和最小化;由窗體的 .BorderStyle 屬性控制。通常的做法是用 *frm*(例如:frmMain 或 frmAlert)命名窗體。

元件

[edit | edit source]

元件是可執行模組,儲存為 .VBX 檔案(VB 16 位版本的 Visual Basic 擴充套件)、.OCX 檔案(32 位版本的 OLE 控制元件擴充套件)或 .DLL 檔案(動態連結庫)。元件是預編譯的程式碼模組,供其他程式設計師使用,無論他們是否瞭解其內部工作機制的詳細資訊。預編譯的元件提供了已經編寫和除錯過的可重用程式碼。元件可以是僅包含程式碼的(.DLL),也可以包含可以在窗體上放置的視覺化元件(.VBX 和 .OCX)。VB 在 *工具箱* 中提供了許多常用元件(按鈕、文字框、列表框等)作為控制元件。

事件

[edit | edit source]

*事件* 是程式執行期間發生的活動,通常是響應使用者的操作,例如滑鼠點選或按鍵。事件導致 *過程* 執行。作為程式設計師,您可以決定要放置在不同事件過程中的程式碼(如果有的話)。

控制元件

[edit | edit source]

控制元件屬性

[edit | edit source]

要顯示控制元件屬性視窗,請選擇檢視\屬性視窗或按 F4 鍵。屬性視窗最初顯示在主視窗的右側邊緣,幷包含所有可編輯屬性的名稱及其當前值。某些控制元件屬性只能在程式執行時編輯,而另一些則只能在設計模式下編輯。

按鈕

[edit | edit source]

按鈕將是您在 Visual Basic 中最好的朋友。每個按鈕都應該包含程式碼,這些程式碼由您(程式設計師)新增。單擊按鈕後,使用者將指示程式執行該部分程式碼。例如,您可以設定它,以便按下時,程式會彈出一個訊息框,顯示“HELLO!”。良好的程式設計風格通常在命名按鈕時使用 *cmd*。

文字框

[edit | edit source]

文字框允許使用者在程式中新增文字區域。此文字不必由程式設計師直接鍵入,而是可以來自其他來源,例如資料庫欄位、文字檔案或使用者在程式執行時鍵入的資料。雖然此屬性的預設值為控制元件的名稱,但它可以設定為任何值,包括 ""(或無)。文字框名稱以 txt 為字首,例如:*txt*。

標籤

[edit | edit source]

標籤是 Visual Basic 中使用最多的物件之一。它們通常用於標記其他控制元件(文字框、影像等)或向用戶提供反饋。它們通常命名為 *lbl*。

計時器

[edit | edit source]

計時器很有趣,也很容易學習。如果您希望程式在經過一定時間後執行某項任務,計時器可以幫助您。它們唯一的事件過程是 _timer,該過程將在經過一定時間後每次執行。使用計時器的最常見步驟如下
1. 在窗體中新增一個計時器併為其命名。
2. 使用 *屬性* 視窗將時間間隔設定為大於 0 的某個值。
3. 雙擊計時器並新增您希望在設定的間隔內執行的程式碼。
計時器也只有很少的屬性。
這是一個計時器可能的使用方式:(要實際操作,請在新的窗體中新增一個命令按鈕、形狀控制元件和計時器。然後使用 *屬性* 視窗設定計時器。Interval 屬性。將下面的程式碼複製到窗體的程式碼模組中,然後按 F5 執行程式。)

  Private Sub Command1_Click()
      Timer1.Enabled = Not Timer1.Enabled
  End Sub
  
  Private Sub Timer1_Timer()
      Shape1.Visible = Not Shape1.Visible
  End Sub

這將使命令按鈕停止並開始形狀控制元件的閃爍(反覆消失和重新出現)。閃爍間隔由計時器的 Interval 屬性決定。**計時器。Interval** 以毫秒為單位。

以下是一個計數器的另一個計時器示例

  '***************************************************************** *
  'APRON TUTORIAL PRESENTED BY MORROWLAND *
  '***************************************************************** *
  'Project Name : Timer * * Project Description : Using Timer and
  'Counter * * Project Type : Visual Basic * * Author : Ronny André
  'Reierstad * * Web Page : www.morrowland.com * * E-Mail :
  'apron@morrowland.com * * Version : English (UK) * * Date :
  '27.06.2002 *
  '*****************************************************************
  'Timers are the backbone in any good application, you will be able
  'to decide when things will happen in millisecounds by using timers
  'and counters you gain control
  
  'declare counter as integer
  Dim counter As Integer
  
  
  Private Sub Form_Load()
      Timer1.Enabled = False 'disable timer at startup
  End Sub
  
  
  Private Sub Command1_Click()
      Timer1.Enabled = True   'starts the timer by enabling it
  End Sub
  
  
  Private Sub Command2_Click()
      Timer1.Enabled = False  'stops the timer by disabling it
  End Sub
  
  
  Private Sub Command3_Click()
      counter = 0             'reset the counter
  End Sub
  
  'The timer procedure
  'the timer procedure will loop in the interval of the timer
  'I have set the timer interval in the "properties" menu to 1000 ms (1 sec)
  Private Sub Timer1_Timer()
  
      counter = counter + 1   'we set the counter to count here
    
      Text1.Text = counter    'write the counter value out as text
    
  End Sub


VB 計時器在處理層次結構中優先順序很低。如果在定時間隔到期時需要執行任何其他程式碼,則允許該程式碼在呼叫計時器的過程之前執行。其他程式碼可以使用 DoEvents 命令將其部分處理時間讓給 Windows。這是唯一允許您編寫的程式碼將時間讓給程式中任何待處理的計時器事件的 VB 命令。不使用 DoEvents,**每個子例程或函式都是從頭到尾以序列方式執行的。** 換句話說,一次只能執行一個命令或語句。每個子例程或函式必須按順序列出要執行的正確命令。

圖片框

[edit | edit source]

雖然被稱為圖片框,但這些物件不僅僅是影像框的重量級版本:圖片框幾乎與窗體物件具有相同的屬性和功能。它可以做的遠不止顯示圖片。描述圖片框的最佳方式可能是,它們是容器,可以將其他物件分組在一起,有點類似於框架物件。例如,可以將幾個命令按鈕繪製在它的“內部”。

另請參閱 簡單圖形

通用屬性

[編輯 | 編輯原始碼]

VB 將一些通用屬性擴充套件到放置在窗體上的所有控制元件。名稱、頂部、左側和標記是擴充套件屬性名稱中的一部分。當你在窗體上用套索選擇並突出顯示多個控制元件時,可以使用屬性視窗更改所有突出顯示控制元件的通用屬性值。在那裡進行更改將更改所有突出顯示控制元件的同名屬性。

引用是一種由 Visual Basic 使用的連結型別。引用一詞以兩種不同的方式使用。

元件引用
通常是外部庫,例如 DLLOCX型別庫。元件引用被新增到專案中,以便程式的所有部分都可以與外部元件互動。
物件引用
通常是指向內部 物件 的指標。物件引用區分或識別程式中的特定物件。物件一詞是一個非常通用的術語,用於表示幾乎所有具有要設定的屬性或要呼叫的方法的任何事物。例如,如果您的窗體上有 5 個文字框,並且您想在一個文字框中輸入文字,則需要使用正確的“物件引用”來訪問該特定文字框。

這兩種用法截然不同,通常不會造成任何問題。通常,當物件引用的意思時,它將被完整地寫出來,而引用通常是指對外部庫的引用。在這兩種情況下,訪問元件或物件引用的屬性(或方法)都需要特殊的語法,包括一個句點來分隔物件和屬性。語法為:<物件>.<屬性> 或者,例如:Form1.Caption = "This" 或 Text1.Text = "That" 等,其中 Form1 或 Text1 是要更改的特定物件,而 Caption 或 Text 是要更改的特定屬性。

您可以在 VB 中建立 元件 供其他程式使用(不僅僅是使用 VB 編寫的程式)。

保留字

[編輯 | 編輯原始碼]

Visual Basic 包含多個保留字。這些詞是“保留的”,因為它們是 Visual Basic 中的特定函式和命令。例如,變數不能命名為“Print”,因為它是在 VB 中列印的特性。但是,可以透過將變數命名為“prnt”或“print1”來避免這種情況。只要它不是完全相同的單詞,它就應該可以工作。一個常用的保留字/關鍵字列表

  And
  As
  Beep
  Call
  Close
  Command
  Date
  Do
  End
  Error
  Event
  Exit
  False
  For
  Function
  Get
  GoTo
  If
  Input
  Kill
  Let
  Load
  Loop
  Me
  Name
  Next
  Not
  Nothing
  On
  Option
  Or
  Print
  Private
  Public
  Put
  Reset
  Resume
  Set
  Step
  Stop
  Sub
  Then
  Time
  True
  Until
  While
  With

在程式設計時,您可能會發現有必要給自己留下筆記。這可以用於輕鬆識別程式碼區域,或者作為邏輯錯誤程式碼段的提醒,這些錯誤需要修復。REMs 非常簡單。只需在行前放置一個撇號“ ' ”或單詞“REM”,該行將被直譯器忽略,無論是對自己的訊息還是程式碼段。例如

  ' I leave notes to myself
  REM or I could do it like this
  'If I REM a line of code it will not execute!
  REM x=5

撇號最常使用,因為與 REM 相比,它在空間和時間上的減少是相對的,因為 REM 已被包含在內,以向後相容早期版本的 BASIC。REM 語句是一個基本命令,如果在同一行上的其他命令之後,它必須以冒號開頭。撇號不需要冒號。

  x = 5 'This comment will work
  y = 3: REM and this comment will work.
  z = 1 REM This line would cause a syntax error.

錯誤檢查

[編輯 | 編輯原始碼]

這些是 VB 程式可能遇到的幾種常見的錯誤型別。

執行時錯誤
這種型別的錯誤是在程式執行時引發的錯誤。例如:將任何東西除以零或將字串分配給數字變數。
編譯錯誤
編譯錯誤是 IDE 在設計時以及在程式執行之前編譯程式時發現的錯誤。這些錯誤包括語法錯誤——在計算機不理解您的程式碼時引發的錯誤,以及未宣告的變數等錯誤。
邏輯錯誤
邏輯錯誤是計算機無法發現的錯誤。這些錯誤是,即使程式執行,結果也不是您想要的。

前兩種錯誤通常很容易發現,除錯工具可用於突出顯示發生錯誤的文字行。例如,如果您想編寫一個將攝氏度轉換為華氏度的程式,並且在程式碼中使用乘法符號而不是除法符號,則程式將正常執行,但程式不會按照您的預期正確轉換溫度。雖然有時這些邏輯錯誤很容易發現,但有些卻很難發現。在編寫複雜的程式(例如遊戲)時,邏輯錯誤會隱藏在程式碼行中。請記住,計算機不知道程式應該做什麼,它只知道程式碼。逐步檢視程式碼,並思考計算機將如何解釋程式碼。

VB 不會讓您忽略語法/編譯錯誤。您必須在執行程式之前修復它們。但是執行時錯誤,這些錯誤在語法上是正確的,但在嘗試執行時可能會導致錯誤,可以被處理,以防止程式崩潰。以下示例展示了一種處理可能錯誤的非常好的方法。

  Private Sub Form_Load()
      On Error GoTo ErrorHappened
      i = 1 / 0 'This line will cause an error to be raised as anything divided by zero = infinity
      '...
      'Some code
      Exit Sub 'Here the subroutine is exited if no errors occur
  ErrorHappened:
      'Informs the user an error happened.
      MsgBox "Error Number " & Err.Number & ":" & Err.Description
  End Sub

此示例的輸出是一個訊息框,顯示“錯誤號 11:除以零”。語句On Error Goto ErrorHappened 將跳過從i = 1 / 0Exit Sub如果在此過程內發生任何執行時錯誤。檢測到錯誤時,程式將繼續從ErrorHappened:之後執行,在那裡將顯示錯誤,以便程式設計師可以找出錯誤並修復它。這也防止了程式“崩潰”。

ErrorHappened 只是一個行標籤,您可以根據需要命名它來標識您想在發生錯誤時執行的那一部分過程。On Error Goto 只能引用當前過程中的行標籤。您不能(輕鬆地)為所有過程定義一個錯誤處理程式。Exit Sub 表示立即結束 Form_Load 事件。

因此,如果未發生錯誤,則不會呼叫訊息框,因為Exit Sub 已經結束或退出了我們的子例程。如果確實發生了錯誤,則訊息框將彈出,顯示錯誤號和錯誤描述。

上面的示例是在子例程中檢測和處理任何錯誤的最安全方法。但是您也可以選擇使用“On Error Resume Next”忽略錯誤,這意味著忽略所有錯誤。在大多數情況下,忽略錯誤不是一個好主意,但在某些情況下,處理錯誤的正確方法是不要做任何事情,因此它們最好被忽略。即使使用 Resume Next,您也可以測試 Err 物件 (Err.Number) 以檢視在前面的行上是否發生了錯誤。

有關錯誤處理的更多詳細資訊,請參閱 錯誤

宣告變數(維數)

[編輯 | 編輯原始碼]

如果您還不知道,變數根據字典定義:是用於數學或邏輯表示式來表示可變數量的符號(如 x 或 y)。在數學中,常見的變數是:x、y、z 等,它們可以“儲存”值,例如 x=1、y=3 等。在 VB 中,變數可以使用您想要的任何名稱,而不是 x、y 和 z。通常,良好的做法是,有時甚至是必要的,對變數進行維數。通常被稱為“調光”。此過程為變數賦予其名稱和它將能夠儲存的值型別(將在後面討論)。要對變數進行維數,程式碼為

  Dim variablename [As Type]

當然,變數名可以是您想要的任何名稱。但是,型別是不同的。您可以選擇單精度、整數或字串。這告訴計算機變數儲存什麼型別的資訊。“單精度”變數可以儲存帶有小數的數字。“整數”變數可以儲存整數,而“字串”變數儲存文字或一組字元。如果您沒有調光變數,則型別將自動為“Variant”,它可以儲存幾乎所有型別的資訊。例如

  Option Explicit
  Dim intNumber As Integer

  intNumber = 31             ' This is ok
  intNumber = "I didn't"     ' Error: type mismatch (intNumber is an integer while "I didn't" is a string)

調光對於陣列和矩陣尤其重要。對於陣列,您在變數名稱旁邊輸入陣列的範圍。例如

  Dim x(1 to 10) As Integer

陣列將在後面更深入地介紹。矩陣的維數與陣列幾乎完全相同,但是,而不是隻有一個維度(1 到 20),矩陣可能有兩個:(1 到 20,1 到 5),甚至三個。維數也可用於告訴計算機變數是公共的。這將在後面的作用域部分討論。

注意:如果您沒有對變數進行維數,您最終可能會遇到許多意想不到的錯誤。可以透過使用 Option Explicit 語句來避免這種情況,該語句要求定義每個變數;如果程式中使用的每個變數都沒有定義,則 VB 會引發一個錯誤:“變數未定義”。要啟用此功能,您只需在當前模組中所有程式碼的最頂端鍵入 Option Explicit。這樣做是一個非常好的做法。

簡單輸出

[編輯 | 編輯原始碼]

使用者和計算機之間的互動包括資料的輸入和輸出。如果您沒有滑鼠或鍵盤(用於輸入命令),則計算機將無法接收您的命令。反之,如果沒有顯示器或揚聲器(用於輸出資料),您根本不知道計算機在做什麼。因此,輸出很重要。

訊息框

[編輯 | 編輯原始碼]

最簡單的輸出形式之一是訊息框。我相信你在 Windows 中已經見過很多訊息框了。下面是普通訊息框的程式碼示例。

  MsgBox("Hello world!")

試試看。你厭倦了枯燥的“Hello world!”了嗎?讓我們做一個更花哨的。

  MsgBox("Fatal error: Your computer will be shut down in five seconds.", vbCritical, "System")

這會嚇到很多人。

注意:這裡“列印”指的是使用 Print 語句,而不是指使用印表機或列印檔案。列印是 Visual Basic 中一個相當簡單的部分,但也是必不可少的。列印用於向用戶輸出資訊。它被證明是一個寶貴的故障排除工具。在列印時,你需要一個要列印的物體,當然還要有要列印的內容。列印可以使用各種物件,但最常見的是圖片框。為了簡單起見,我們假設你將圖片框重新命名為“pic”。在這本華夏公益教科書中,列印主要在圖片框和窗體上完成。

  pic.Print "Hello world!!"   'Prints message on picture box
  Print "Hello world!!!"      'Prints message on current form

有各種方法可以改變列印時文字的間距。最常見的是逗號。逗號將跳到下一個列印區。列印區長度為 15 個字元。你可以把它想象成在打字時按 Tab 鍵。請記住,列印區是固定的,因此如果你輸入了一個字母,然後使用了一個逗號,那麼就會有一個很大的空格。如果你輸入了 13 個字元並使用了一個逗號,那麼就不會有一個很大的空格。例如:

  Private Sub Form_Click()
      Me.Print "Hello", "Next Zone"
  End Sub

在這個例子中引入了幾個新的概念。 "Form_Click" 包含一段程式碼塊,當用戶點選當前窗體 (Form1) 時會呼叫它。 'Me' 與當前窗體 (Form1) 相同。不要害怕嘗試。無論你在 VB 中做什麼,它都是可逆的。現在,逗號並不是萬能的。另一個功能是 Tab。Tab 會從行的開頭移動多個空格。在 Tab 後面的括號中是空格的字元數。例如:

  Form1.Print "Hello"; Tab(10); "Yay"

這不會在 "Hello" 中的 O 後面列印 10 個空格的 "yay"。而是在行的開頭列印 10 個空格。你可以在同一個列印命令中使用任意數量的 Tab。雖然 Tab 很有用,但有時最好是根據已經列印的內容來間隔文字。這就是 Space 函式的作用。Space 的語法與 Tab 的語法相同。Space 會將下一個列印的文字從其當前位置向右移動多個空格。例如:

  Pic.print "Hello"; Space(10); "Yay"

這會在 "Hello" 中的 O 右邊列印 10 個空格的 "Yay" 的第一個 Y。需要注意的是,如果你寫:

  Pic.Print "Hello"
  Pic.Print "Hello"

它們將出現在不同的行上,如:

 Hello
 Hello

這可以透過將程式碼改為以下方式輕鬆解決(注意分號):

  Pic.Print "Hello";
  Pic.Print "Hello"

這將顯示為:

 HelloHello

如果你想在兩個 "hello" 之間新增一個空白行,你只需使用一個空的 Print 語句,沒有分號。例如:

  Pic.Print "Hello"
  Pic.Print
  Pic.Print "Hello"

這將列印為:

 Hello
 
 Hello

重要的是要記住,如果第一個 Print 語句在末尾有一個分號,通常稱為尾部分號,那麼空的 Print 語句只會將其反轉,並在下一行列印第二個 Hello,並且不會出現空白行。


前一節:歷史 目錄 下一節:簡單算術
華夏公益教科書