Upload
anoush
View
191
Download
0
Embed Size (px)
DESCRIPTION
程式設計 Visual Basic 6.0. 許翠婷 E-mail : [email protected]. 圖片盒 v.s. 影像工具. Pic v.s. img 座標- 原點 ( 0,0 ) X 軸- left +:向右 -:向左 Y 軸- top +:向下 -:向上 計量單位-( twip 、 dot 、 pixel 、 inch 、 mm 、 cm ) 1440 twips = 1 inch 567 twips = 1 cm. 圖檔格式. - PowerPoint PPT Presentation
Citation preview
程式設計 程式設計 Visual Basic 6.0Visual Basic 6.0
程式設計 程式設計 Visual Basic 6.0Visual Basic 6.0
許翠婷許翠婷E-mail : E-mail : [email protected]@scu.edu.tw
圖片盒 v.s. 影像工具• Pic v.s. img • 座標-
1. 原點 ( 0,0 )2. X 軸- left +:向右 -:向左3. Y 軸- top +:向下 -:向上
• 計量單位-( twip 、 dot 、 pixel 、 inch 、mm 、 cm )
– 1440 twips = 1 inch– 567 twips = 1 cm
圖檔格式1. .bmp ( Windows Bitmap )- BMP 圖檔格式是以 Bit-Mapped
方式所組成的圖形檔案 ,未壓縮。
2. .gif ( Graphics Interchange Format )-非破壞性壓縮( lossless )、失彩度。工程設計圖、素描圖
3. .jpeg ( Joint Photographic Experts Group )-破壞性壓縮( lossful )、失解析度。風景圖
4. .wmf ( Windows Meta File )-繪圖指令。
5. .ico
6. .dib
\Program Files\Microsoft Visual Studio\Common
圖片盒 ( Picture Box ) v.s. 影像工具( Image )
• pic v.s. img – PictureBox 功能強,就好像被布置表單上的 [ 表單 ] ,可
使用 Line 、 Cirlce 等表單的繪圖方法,這些繪圖方法除了可以在表單上面繪圖之外,也可以使用於 PictureBox ,在 PictureBox 之中繪圖,但 Image 卻不具備繪圖的功能。
– 相對的, PictureBox 很浪費系統資源,如果只是為了顯示圖片,使用 Image 比較好,若需要額外繪圖,則使用 PictureBox
• 屬性• top 、 left• width 、 height• Visible 。
物件的垂直順序
• 先建的物件,置於較下層( ob1 )• 後件的物件,置於較上層( ob2 )• 當物件重疊放置, visible 屬性均為 tru
e 時,僅顯示最上層物件( ob2 )• 若欲看見下層之物件,需將其上層物件
( ob2 ) visible 屬性設為 false
敘述、識別項• 何謂敘述( Statement )?
– 最小可執行單元– 組成:識別項、保留字、特殊符號、運算式、常值
• 識別項( identifier )的命名規則– 第一個字為字母( A-Z 或中文)、第二個字以後可
為字母、數字或底線 _• <=255 個字元• 不可為保留字• 大小寫視為相同e.g. 正確: y5 、 x 、 st_2 、名次
錯誤: 5y 、 x.0 、 st-2 、 sub
保留字• 保留字( reserve word )、關鍵字( k
eyword )• if 、 print 、 for 等• 特徵
– 自動以藍色顯示– 自動首字母由小寫轉大寫– 例外: sum 、 avg
註解、敘述分隔符號、敘述連接符號
• 註解1. ‘ -接於敘述之後2. REM -獨立一行
• 敘述( statement )分隔符號1. :
• 敘述( statement )連接符號1. Space + underline _
Timer• 事件驅動 v.s. 時間驅動
– 時間驅動:(固定每隔多少時間執行一次物件上所定義之事件程序)
– 事件驅動 :(當發生某個事件時,執行一次物件上所定義之事件程序)
• tmr• 屬性
– Interval• 0 關閉 timer• 1000 一秒
作業三• 設計一個每秒鐘上下跳動的物件,上置
開始與停止按鈕。
運算式
• 一般運算式變數名稱 = 運算元 運算子 運算元 【運算子 運算
元】Y= 2+3*(5-2)
• 比較運算式變數名稱 比較運算子 變數或值或運算式
Y>x y>1 y>(1+2)
運算式
• 邏輯運算式比較運算式 邏輯運算子 比較運算式
y>1 or y<(1+2)
運算元( operand )• 數字系統
1. 十進位 102. 八進位 &O &O123. 十六進位 &H &HA
– Operand Operator Operand– 5 + 3
資料的表示法
• 數值資料 — 整數、實數、科學記號 • 字串資料•日期、時間資料 •布林資料
整數• 十進位的表示法:逗號是不能使用的,如 10,000 。• 十六進位數的表示法:前面加上 &H • 八進位數的表示法:前面加上 & 或 &O( 字母
O)
100 100 的十進位表示法&H64 100 的十六進位表示法&144 100 的八進位表示法&O144 也是 100 的八進位表示法
十六進位是 64((64)16= 6×161 + 4×160= 100
八進位是 144((144)8 = 1×82 + 4×81 + 4×80= 100
Hex 及 Oct 函數 • 開啟即時運算視窗• Print 指令• 範例 Print Hex(100)
64Print Oct(100)144
返回
實數• 小數方面, VB 的表示法也跟數學完全相同,如 3.14159、 0.0016 、 -8000.5 等均為正確的寫法。
• VB並沒有分數的表示法,不過我們可以用除號 ‘ /’ 把分數的意義表達出來,例如把 寫成 1/3
返回
實數 -- 浮點數表示法 科學記號中的「有效數字」及「指數」
有效數字有效數字
指數指數
ED
或
指數符號D或E,兩者意義相同。
例如:
科學記號表示法 浮點數表示法
5. 6× 10- 7 5. 6E- 79. 75× 109 9. 75E+9
指數有效數字
指數有效數字
實數 -- 科學記號 • 一般科學記號表示法 • 說 明9750000000 =9.75×109 將小數點左移 9位 , 得到 9.75, 再乘以 1090.00000056 =5.6×10-7 將小數點右移 7 位 , 得到 5.6, 再乘以 10-7
• VB 使用算術運算符號表達,例如:9.75×109 表達成 9.75*10^95.6×10-7 表達成 5.6*10^-7
* 代表乘號 , ^ 代表次方符號。 返回
字串資料 • 以 “” 括起來的文數字都算是字串,如:
"RUN!PC""Address #83""1998""12+75=?"" 資訊月刊 "
Print "RUNRUN!PC" ' 放到記憶體時 , 兩邊的雙引號會被去掉 , RUNRUN!PC ' 所以輸出時也就沒有雙引號了。
返回
日期時間資料 • 必須用 ## 括起來• #9:30# 表示上午 9點 30 分• #1997/12/31# 表示 1997年 12月 31日
• 輸出時, VB 一律使用「系統的日期格式」,並且去掉 ## 再輸出,例如:
• Print #28 Feb 1998#1998/2/28
標準的日期表示法 • 標準的日期表示法是 #西元年 /月 /日 #,例如:
#1997/7/1#表示 西元 1997 年 7 月 1 日#2005/12/31# 表示 西元 2005 年 12 月 31 日
• 西元年從 1930到 2029可以簡寫成 30到 99及 00到 29:
#89/7/1# 等於 #1989/7/1#
非標準的日期表示法 • 如果不是標準日期表示法, VB 也會做智慧的判斷,例如以下的寫法都表示 #1997/2/28#(1997 年 2 月 28日 ) :#2 28 97##97 2 28##28 Feb 1997##February 28, 1997#
系統的日期格式( 1 )• 同樣是 #1998/2/28#,可能有些人的機器輸出了「 1998/2/28 」,但也可能有些人的機器輸出了「 2/28/1998 」,這是因為 VB 採用系統的日期格式來輸出資料,而系統的日期格式又可以使用以下方法來進行設定:
先選取「開始功能表-> -> 設定 控制台」
1
再執行「控制台」的「國別設定」
2
4在此設定系統的日期格式
出現此一交談窗
選擇「日期」頁籤3
以上圖為例,所設定的日期格式為 以上圖為例,所設定的日期格式為 "MM/dd/yyyy""MM/dd/yyyy" ,,所以 所以 #1998/2/28# #1998/2/28# 將會被輸出成「將會被輸出成「 02/28/199802/28/1998」。」。
系統的日期格式( 2 )
錯誤的日期表示法 • 不存在的日期及中文日期, VB 是不接受的,所以:• #1997/13/29# 錯誤 ,月份 13 超過範圍#1997/2/29# 錯誤 ,1997年不是閏年, 2月只有 28 天#1997 年 7 月 1 日 # 錯誤 , 中文日期
返回
標準的時間表示法 • 標準的時間表示法是 #時 : 分 : 秒 AM# 及 #時 : 分 : 秒 PM#,其中 AM 表示上午, PM 表示下午
• #9:30:00 AM# 表示 上午 9 點 30 分#7:55:30 PM# 表示 下午 7 點 55 分 30 秒
非標準的時間表示法
• 如果不是上述的標準時間表示法, VB 也會做智慧的判斷,例如:
• #9 A# 等於 #9:00:00 AM##17:3# 等於 #5:03:00 PM#
錯誤的時間表示法 • 輸入時間時,有效的時分秒分別是:時:
0 ~ 23 、分秒: 0 ~ 59,所以下面的表示法是錯誤的:
• #24:00:00# 錯誤 , '時 ' 超過 23#17:60:00# 錯誤 , '分 ' 超過 59#12:00:-1# 錯誤 , '秒 ' 是負數
VB 如何輸出時間? •輸出時間時, VB 也一律採用系統的時間
格式來輸出,同樣會去掉 ##,例如: Print #17:30:50#
PM 05:30:50
時間的輸出也一律使用系統的時間格式 ,並且去掉 ##
系統的時間格式( 1 ) 同樣是 #17:50:30#,可能有些人的機器輸出了「 17:50:30」,但也可能有些人的機器輸出了「 PM 05:50:30」,這是因為 VB 採用系統的時間格式來輸出資料,而系統的時間格式又可以使用以下方法來進行設定:
先選取「開始功能表-> -> 設定 控制台」
1
再執行「控制台」的「國別設定」
24
在此設定系統 的時間格式
選擇「時間」頁籤3
出現此一交談窗
以上圖為例,所設定的時間格式為 “以上圖為例,所設定的時間格式為 “ tt hh:mm:ss”tt hh:mm:ss” ,所,所以 以 #17:50:30# #17:50:30# 將會被輸出成「將會被輸出成「 PM 05:50:30PM 05:50:30」。」。(( 註:時間格式中的 “註:時間格式中的 “ tt” tt” 表示以 表示以 AM AM 來表示上午、以 來表示上午、以 PM PM 來表示來表示下午下午 ))
系統的時間格式( 2 )
時間的注意事項• ‘0 時’ VB 將它表示成 #12:00:00 AM#,而 ‘ 12
時’ 則是 #12:00:00 PM#,所以:
Print #0:30:0#AM 12:30:00 Print #12:00:00#PM 12:00:00
• 時間的表示法中也可以把日期涵蓋進來,例如 #1997/2/28 5:03:00 PM# 即表示 1997年 2月 28 日 , 下午 5點零 3 分。
返回
布林資料 • 布林資料指的是「真」與「假」的集合,又稱「真假資料」。
• 「真」以 True 表示,「假」以 False 表示。• 布林資料常用來代表一個條件式的成立與否,例如:
? 2 > 1 ' 利用即時運算視窗詢問 VB :「 2 > 1嗎?」True ' VB 回答:「真的」? 2 < 1 ' 再問:「 2 < 1 嗎?」False ' VB 回答:「假的」 返回
運算子( Operator )• 算術運算子
– ()、 ^、-、* /、 \、 Mod 、+ -• 連結運算子
– &• 比較運算子
– =、<>、<、>、<=、>=• 邏輯運算子
– And Or Not Xor
字串與字串的串接• 字串與字串的串接就是把兩個字串連接
成為一個新的字串,其運算符號是加號 ‘ +’。例如: First = "Peter"Last = "Wang"Print First + " " + LastPeter Wang
串接運算的注意事項 • ‘+’ 號用在字串與字串之間叫做「串接運算」,用在數值與數值之間叫做「算術運算」,例如:
? 50 + 20 ? 50 + 20 ' ' 算術運算算術運算 7070? "50" + "20"? "50" + "20" ' ' 串接運算串接運算5020 5020
各種類型資料的串接 • ‘&’是串接用的運算符號,在 ‘各種類型資料’ 的串接• S1 = "Today is "D = #8/24/97#S2 = S1 & D ' 字串與日期的串接Print S2Today is 1997/8/24
• Print “12345.” & 678 ‘ 字串與數值串接後,直接印出12345.678
• Print 678 & 0.12345 ‘ 數值與數值的串接6780.12345
• X = "VB" + 4.0 ' 錯誤! '+' 號只能用來串接字串與字串 返回
比較運算 比較 ‘運算符號’ 兩邊的數值後,傳回 True 或 False
比較運算符號 相當於數學上的 使 用 例 = = 1 = 2 傳回 False > > 1 > 2 傳回 False < < 1 < 2 傳回 True
>= 或 => ≧ 1 >= 2傳回 False <= 或 =< ≦ 1 <= 2傳回 True <> 或 >< ≠ 1 <> 2傳回 True
• Print 1 > 2False
• B = 1 <> 2Print BTrue
比較運算 – 例子
日期時間的比較( 1 ) • 時間的比較,後面的時間大於前面的時間 :#9:30# 大於 #8:30#
• 但 #12:00:00 AM# 被視為 ‘ 0 時’,而 #12:00:00 PM# 被視為一天的中午 12 時,所以:#12:30:00 PM# 小於 #1:00:00 PM#
• 日期的比較中,後面的日期大於前面的日期:#1997/7/1# 大於 #1997/1/1#
• 00 ~ 99年表示 2000 ~ 2029及 1930 ~ 1999年,所以: #97/1/1# 大於 #1899/12/31#。
• 同時涵蓋日期及時間的比較中,先比較日期再比較時間,例如:
#97/1/1 0:00:00# 大於 #96/12/31 23:59:59##97/1/1 3:00:00# 大於 #97/1/1 0:00:00#
• 如果一方有日期,一方沒有日期,則將沒有日期那一方的日期視為 #1899/12/30#,例如 #0:00:00# 相當於 #1899/12/30 0:00:00#,所以:
#0:00:00# 大於 #1899/12/29 23:59:59#
• 如果一方有時間,一方沒有時間,則將沒有時間那一方的時間視為 #0:00:00#,所以:
#97/1/1# 小於 #97/1/1 0:0:1#
日期時間的比較( 2 )
字串的比較
• 比較的依據是字元的字元碼 。• 比較方式是從每個字串的第一個字元開始依次比
較其字元碼,直到比較出大小為止。 • 如果未比較出大小,而某一個字串已先達到最後
一個字元,則長度較小的字串小於長度較大的字串。
B A S I C
B A S I C A
2.若比較不出,再比較長度1.先依序比較字元碼
知道字元碼的方法• 英文範圍 (0 ~ 127) 內的字元 : 利用即時運算視窗執行
? ASC("字元 ") 。• 中文字 ( 包含兩個 byte): 利用即時運算視窗執行 ? ASC(“中文字” ) + 65536 。
• 例如:? ASC("A") 65 ' 字元 A 的字元碼等於 65? ASC("B") 66 ' 字元 B 的字元碼大於 A? ASC(" 程 ") + 65536 46459 ' 中文字 '程 ' 的字元碼等於 46459
判斷出字元的大小的規則• 英文字母順序在前者,其字元碼較小,例: "a" < b"。 • 小寫字母 "大於 " 大寫英文字母,例: "a" > "A"。 • 數字 "小於 " 英文字母,例: "2" < "A"。 • 中文字 "大於 " 英文字母,例: "程 " > "a"。 數字字元<英文大寫字母<英文小寫字母<中文字
Print "kg" > "KG" True
Print "COPY" < "COPYRIGHT"
True
Print "ANGEL" < "ANGLE" True
Print "3-ANGEL" > "ANGLE" False
Print "中文 " > "English" True
返回
邏輯運算 運算符號 使用例 功 能 說 明
Not Not A 反 A 若 A 為 True, 則 Not A 為 False
And A And B A 且 B 只有當 A 及 B 同時為 True 時 , 其結果方為 True, 否則為 False
Or A Or B A 或 B 只要 A 或 B 為 True, 其結果便為 True
運算子( Operator )• 邏輯運算子
– NOT-相反– AND-二者為真,才為真– OR -其一為真,就為真– XOR -二者相反,才為真
邏輯運算子 真值表( True Table )
• NOT-相反NOT 0 1
1 0
邏輯運算子 真值表( True Table )
• AND-二者為真,才為真 AND 0 1
0 0 0
1 0 1
邏輯運算子 真值表( True Table )
• OR -其一為真,就為真 OR 0 1
0 0 1
1 1 1
邏輯運算子 真值表( True Table )
• XOR -二者相反,才為真 XOR 0 1
0 0 1
1 1 0
真值表 :T 代表 True , F 代表 False
A B Not A A And B A Or B
T T F T T
T F F F T
F T T F T
F F T F F
Print True Or FalseTrue
Print 4 > 3 And 1 > 4False
4 > 3 And 1 > 4=True And False=False
邏輯運算的對象
• Not 2 > 1 Not 是以 2 > 1 這個比較運算式作為運算的對象
• Not 2 > 1 先求比較運算式的結果,= Not True 再進行邏輯運算= False
Not
運算對象
True
運算符號
綜合運算 -1優先順序
運算符號
1
1
算術運算符號^ (指數運算)
2 - (負數運算) 3 *,/ (乘、除運算 ) 4 \ (整數除法 ) 5 Mod (模數運算 ) 6 +,- (加、減運算 )
綜合運算 -2優先順序 運算符號2 字串運算符號, + 及 & 的優先順序相
同 3 比較運算符號,其優先順序皆相同
4
邏輯運算符號 1 Not (反 ) 2 And (且 ) 3 Or ( 或 ) 4 Xor (互斥 ) 5 Eqv ( 相等 ) 6 Imp (包含 )
算術運算 <優先於 > 字串運算 <優先於 > 比較運算 <優先於 > 邏輯運算
所以這個運算式: 20 >= 10 And 3^2 <= 3*2 算術運算,最優先
= 20 >= 10 And 9 <= 6 比較運算,次之= True And False 邏輯運算,最後= False
20 >= 10 And 3̂ 2 <= 3*2
算術運算符號,第1優先
比較運算符號,次之邏輯運算符號,最後處理
同一運算式中有優先順序相同的運算符號時,則運算順序是自左而右 12 / 3 * 2
= 4 * 2= 8如果我們想改變運算順序,可以使用左右括弧
12 / (3 * 2)= 12 / 6= 2
作業• 2-35 第六題
• Private Sub cmdBack_Click()• picSnow.Left = 0• End Sub
• Private Sub cmdStart_Click()• picSnow.Left = picSnow.Left + 200• • End Sub
• Private Sub Form_Load()• picSnow.Left = 0• End Sub
• Private Sub picLightOff_Click()• picLightOff.Visible = False• End Sub
• Rem 事件驅動• Private Sub picLightOn_Click()• picLightOff.Visible = True• End Sub
• Rem 時間驅動• Private Sub tmrLight_Timer()• picLightOff.Visible = Not picLightOff.Visible• End Sub
訊息窗 (MsgBox) (1)抬頭 訊息內容
回覆按鈕圖示
訊息窗 (MsgBox) (2)• 抬 頭:通常用來顯示程式名稱,也就是告訴使用者這個訊息窗是哪一個程式顯示出來的。
• 訊息內容:程式想告訴使用者的訊息。• 圖 示:提醒使用者注意的示意圖。• 回覆按鈕:使用者回覆這個訊息的按鈕,如果使用者不按下按鈕,則訊息窗會一直保留在螢幕上。
• 格式 :MsgBox 訊息內容
• 例子:MsgBox " 使用訊息窗 !"
MsgBox – 最簡單的格式
訊息內容
抬頭及回覆按鈕由 VB 內定
vbOKCancel
MsgBox -- 設定回覆按鈕(1)
• 格式 :MsgBox 訊息內容 , 回覆按鈕設定值
• 例子:MsgBox " 設定回覆按鈕的訊息窗 !", vbOKCancel
MsgBox -- 設定回覆按鈕(2)
回覆按鈕設定值 :設定值 設定值之常數符號 回覆按鈕
0 vbOKOnly1 vbOKCancel 2 vbAbortRetryIgno
re
3 vbYesNoCancel
4 vbYesNo 5 vbRetryCancel
MsgBox -- 設定圖示 (1)• 格式 :MsgBox 訊息內容 , 圖示設定值
• 例子:MsgBox " 設定圖示的訊息窗 !", vbInformation
vbInformation
MsgBox -- 設定圖示 (2)
設定值 設定值之常數符號 圖示
16 vbCritical
32 vbQuestion
48 vbExclamation
64 vbInformation
圖示設定值
MsgBox -- 同時設定回覆按鈕及圖示
• MsgBox 訊息內容 , 回覆按鈕設定值 + 圖示設定值• MsgBox "喜歡訊息窗嗎? ", vbYesNo + vbQuestion
vbYesNo
vbQuestion
MsgBox -- 設定抬頭• 格式一:MsgBox 訊息內容 , 回覆按鈕設定值 + 圖示設定值 , 抬頭
• 格式二:MsgBox 訊息內容 ,, 抬頭
• 例子: MsgBox " 抬頭真好 !",, " 禮義廉恥 "
MsgBox -- 通用格式
• 其中參數二、三以 [] 括起來,表示這兩個參數是可以省略的 。
• 又參數二含有兩個部份,可以擇一或兩者皆設定之。
MsgBox [, ] [, ]訊息內容 回覆按鈕設定值+圖示設定值 抬頭
參數1 參數2 參數3
MsgBox -- 顯示多行訊息內容
• 有時候我們想顯示多行的訊息內容,則可在行與行之間插入 Chr(13) 的跳行字元,例如:
跳行字元
MsgBox "這是第一行" + Chr(13) + "這是第二行"
MsgBox 函數 • 格式: X = MsgBox( 參數串列 )傳回值 X 是由使用者按下哪一個回覆按鈕來決定
按鈕 傳回值 傳回值之常數符號 1 vbOK 2 vbCancel 3 vbAbort 4 vbRetry 5 vbIgnore 6 vbYes 7 vbNo
MsgBox 函數的例子( 1 )X = MsgBox(" ?", vbYesNo+vbQuestion)喜歡訊息窗嗎
傳回
vbNovbYes
MsgBox 函數的例子( 2 )X = MsgBox("X = MsgBox(" 星期六一起看場電影好嗎?星期六一起看場電影好嗎? ", ",
vbYesNo + vbQuestion)vbYesNo + vbQuestion)
If X = vbYes ThenIf X = vbYes Then MsgBox " MsgBox " 太好了!太好了! ""ElseElse MsgBox " MsgBox " 啊!啊! ..."..."End IfEnd If
訊息窗與顯示圖片實例( p.120 )
訊息窗與顯示圖片實例 -- Step1-1
•表單設計:在表單上佈置好四個命令鈕,並且為表單及命令鈕設定好以下屬性:
物件 屬性 屬性值Form1 Captio
n 請選擇您想去觀光的國家
Command1
Caption
美國
Style 1 - 圖片外觀 Picture
本書 ch04 目錄的 USA.wmf
Command2
Caption
加拿大
Style 1 - 圖片外觀 Picture
本書 ch04 目錄的 Canada.wmf
Command3
Caption
法國
Style 1 - 圖片外觀 Picture
本書 ch04 目錄的 France.wmf
Command4
Caption
日本
Style 1 - 圖片外觀 Picture
本書 ch04 目錄的 Japan.wmf
訊息窗與顯示圖片實例 -- Step1-2
• 程式設計:分別在Command1 、 Command2 、 Command3 、及Command4 命令鈕之中撰寫以下程式:
訊息窗與顯示圖片實例 – Step2-1
Private Sub Private Sub Command1Command1_Click() _Click() ' ' 「美國」命令鈕「美國」命令鈕 MsgBox "MsgBox " 您想去觀光的國家是您想去觀光的國家是 : " + : " + Command1Command1.Caption, vbInformation.Caption, vbInformation Set Form1.Picture = Set Form1.Picture = Command1Command1.Picture.PictureEnd SubEnd Sub
Private Sub Private Sub Command2Command2_Click() _Click() ' ' 「加拿大」命令鈕「加拿大」命令鈕 MsgBox "MsgBox " 您想去觀光的國家是您想去觀光的國家是 : " + : " + Command2Command2.Caption, vbInformation.Caption, vbInformation Set Form1.Picture = Set Form1.Picture = Command2Command2.Picture.PictureEnd SubEnd Sub
訊息窗與顯示圖片實例 – Step2-2
Private Sub Private Sub Command3Command3_Click() _Click() ' ' 「法國」命令鈕「法國」命令鈕 MsgBox "MsgBox "您想去觀光的國家是您想去觀光的國家是 : " + : " + Command3Command3.Caption, vbInfo.Caption, vbInformationrmation Set Form1.Picture = Set Form1.Picture = Command3Command3.Picture.PictureEnd SubEnd Sub
Private Sub Private Sub Command4Command4_Click() _Click() ' ' 「日本」命令鈕「日本」命令鈕 MsgBox "MsgBox "您想去觀光的國家是您想去觀光的國家是 : " + Command4.Caption, vbInfor: " + Command4.Caption, vbInformationmation Set Form1.Picture = Set Form1.Picture = Command4Command4.Picture.PictureEnd SubEnd Sub
輸入窗 (InputBox)
X = InputBox( 提示訊息 [, 抬頭] [, 輸入欄預設值 ] )
提示訊息抬頭
輸入欄
輸入確認鈕
輸入取消鈕
X=InputBox(" "," ","175")請輸入身高 計算標準體重
修改輸入欄的內容後,按 確定鈕即傳回輸入欄的內容,但如果按 取消鈕,則傳回空字串。
輸入窗 (InputBox) 的例子
X = InputBox( "請輸入身高 " ) ' 省略後面兩個參數X = InputBox( "請輸入身高 ",, "175" ) ' 省略抬頭X = InputBox( "請輸入身高 ", " 計算標準體重 " ) ' 省略輸入欄預設值
使用 InputBox 的注意事項 • InputBox 的傳回值是字串,當我們利用它來輸入數值資料時,要特別注意資料運算的問題 。
• 正確的方法如下:A = InputBox("請輸入 A 值 ") B = InputBox("請輸入 B 值 ")A = Val(A) ' 將 A 轉換成數值資料,再指定給 AB = Val(B) ' 將 B 轉換成數值資料,再指定給 BC = A + B
輸入窗實例( p.126 ) 寫一程式讓使用者輸「國文」、「數學」、及「英寫一程式讓使用者輸「國文」、「數學」、及「英文」成績,然後計算其平均分數。文」成績,然後計算其平均分數。
輸入窗實例 -- Step 1
•在表單上佈置好 Command1 命令鈕,並且將其 Caption 屬性設定成 “計算平均分數”。
輸入窗實例 -- Step 2在 Command1 之中撰寫以下程式:
Private Sub Command1_Click() A = Val(InputBox("請輸入 [數學 ]成績 ")) B = Val(InputBox("請輸入 [英文 ]成績 ")) C = Val(InputBox("請輸入 [國文 ]成績 ")) Print "平均分數 ="; (A + B + C) / 3End Sub
• 在以上程式中,輸入成績的敘述被寫成比較精簡的格式,如下:
A = Val(InputBox(“請輸入 [數學 ]成績” ))
它的作用相當於以下兩個敘述: A = InputBox("請輸入 [數學 ]成績 ")
A = Val(A)
輸入窗實例 -- Step 2 說明