chapter 5 variable data & operator

36
Chapter 5 Variable Data & Operator SUCHADA PUNNOI Dept. of Computer Science & Information Technology http://computer.pcru.ac.th/KuBo/

Upload: bree

Post on 05-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Chapter 5 Variable Data & Operator. SUCHADA PUNNOI Dept. of Computer Science & Information Technology http :// computer . pcru . ac . th / KuBo/. Variable : ตัวแปร. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 5 Variable Data & Operator

Chapter 5Variable Data & Operator

SUCHADA PUNNOIDept. of Computer Science & Information Technology

http://computer.pcru.ac.th/KuBo/

Page 2: Chapter 5 Variable Data & Operator

Variable : ตั�วแปร ไม่�ว่�าโปรแกรม่ประยุ�กต์�ใด ภาษาใด สิ่��งที่��ต์�องร� �เป�นอ!นด!บ

แรกๆ ก$คื&อ ต์!ว่แปร คื�าคืงที่��และ ชน�ดของข�อม่�ล ของภาษาน!*น ๆ ซึ่,�งจะที่.าให้�เห้$นข�อจ.าก!ดต์�างๆ ในภาษาน!*น ๆ ที่.าให้�สิ่าม่ารถใช�งานได�อยุ�างถ�กต์�อง และม่�ประสิ่�ที่ธิ�ภาพ เพราะต์!ว่แปรและคื�าคืงที่��ถ&อได�ว่�าเป�นต์!ว่แที่นของข�อม่�ล ที่��จะต์�องน.าไปใช�งาน ประม่ว่ลผล และแสิ่ดงสิ่��งที่��ได�จากการประม่ว่ลผล

ที่.าไม่ต์�องประกาศต์!ว่แปร เพ&�อการที่.างานที่��ถ�กต์�องของโปรแกรม่ เม่น� Tools Option… Editor

Require Variable Declaration จะได� Option Explicit ใน View Code

Page 3: Chapter 5 Variable Data & Operator

การประกาศตั�วแปรและค่ าค่งที่��

Dim variable_name As Data_Type

Const const_name =

Value เช่ น

Dim data1 As Integer

Const pi = “3.1414”

Page 4: Chapter 5 Variable Data & Operator

การประกาศต์!ว่แปร (Declarations)

การประกาศต์!ว่แปรใน VB สิ่าม่ารถแยุกได� 2 แบบคื&อ 1.การประกาศต์!ว่แปรแบบ Implicit Declaration

ห้ม่ายุถ,ง VB ยุอม่ให้�คื�ณใช�งานต์!ว่แปรได� โดยุไม่�ต์�องม่�การประกาศต์!ว่แปร ชน�ดของข�อม่�ลที่��ได�จะเป�นแบบ Variant

2.การประการต์!ว่แปรแบบ Explicit Declaration ห้ม่ายุถ,ง คื�ณจะต์�องม่�การประกาศต์!ว่แปรก�อนการใช�งานที่�กคืร!*ง แล�ว่จ,งสิ่าม่ารถน.าต์!ว่แปรน!*นๆ ไปใช�งานได�

Page 5: Chapter 5 Variable Data & Operator

ต์!ว่อยุ�าง การประกาศ กรณ�ที่��ต์�องการก.าห้นดให้�

ม่�การประกาศต์!ว่แปรที่�กคืร!*งก�อนที่��จะม่�การเร�ยุกใช�ต์!ว่แปร เพ&�อห้ล�กเล��ยุงการใช�ต์!ว่แปรชน�ด Variant ให้�พ�ม่พ�คื.าสิ่!�ง Option Explicit ไว่�ข�างบนสิ่�ดก�อนพ�ม่พ�คื.าสิ่!�งอ&�น ๆ

Page 6: Chapter 5 Variable Data & Operator

กฎการตั��งช่��อตั�วแปรข,*นต์�นด�ว่ยุพยุ!ญชนะเที่�าน!*นคืว่าม่ยุาว่ของช&�อที่��ต์! *งสิ่�งสิ่�ดไม่�เก�น 255 ต์!ว่อ!กษรช&�อที่��ต์! *ง ต์�องไม่�ซึ่.*าก!นคื.าสิ่งว่น (Keywords ) คื.าสิ่!�ง

(Statements ) ฟั8งก�ช!น (Functions ) ห้ร&ออ&�น ๆ ที่�� Visual Basic ก.าห้นดไว่�

ห้�าม่ต์!*งช&�อซึ่.*าก!นในโพรซึ่�เดอร�เด�ยุว่ก!น ห้ร&อในขอบเขต์เด�ยุว่ก!น

ห้�าม่ใช�เคืร&�องห้ม่ายุที่างคืณ�ต์ศาสิ่ต์ร�, ต์!ว่ด.าเน�นการ (Operators ) ห้ร&อ เคืร&�องห้ม่ายุพ�เศษ เช�น @, # ม่าต์!*งช&�อ

ห้�าม่ม่�ช�องว่�างในช&�อต์!ว่แปรถ�าต์�องการเว่�นว่�างให้�ใช�เคืร&�องห้ม่ายุ _ (Underscore ) เที่�าน!*น

Page 7: Chapter 5 Variable Data & Operator

Type of Data ประเภที่ข้�อมู�ล

ประเภที่ ข้นาด

การเก�บข้�อมู�ลหร�อช่ วงข้�อมู�ล

Integer จ.านว่นเต์$ม่ 2 ไบต์�

–32,768 ถ,ง 32,767

Long จ.านว่นเต์$ม่ 4 ไบต์�

–2,147,483,648 ถ,ง 2,147,483,647

Boolean จ.านว่นเต์$ม่ 2 ไบต์�

เก$บคื�า 0 และ –1 ซึ่,�งแที่น False ห้ร&อ True

Byte จ.านว่นเต์$ม่ 1 ไบต์�

เก$บคื�าในช�ว่ง 0 ถ,ง 255

Single จ.านว่นที่ศน�ยุม่

4 ไบต์�

คื�าลบ –3.402823E38 ถ,ง –1.401298E-45 คื�าบว่ก 1.401298E-45 ถ,ง 3.402823E38

Page 8: Chapter 5 Variable Data & Operator

Type of Data (ตั อ)ประเภที่ข้�อมู�ล

ประเภที่ ข้นาด

การเก�บข้�อมู�ลหร�อช่ วงข้�อมู�ล

Double จ.านว่นที่ศน�ยุม่

8 ไบต์�

คื�าลบ –1.79769313486232E308 ถ,ง -4.94065645841247E-324 คื�าบว่ก 4.94065645841247E-324 ถ,ง 1.79769313486232E308

Currency จ.านว่นที่ศน�ยุม่ (4 ต์.าแห้น�ง)

8 ไบต์�

–922,337,203,477.5808 ถ,ง –922,337,203,477.5807

  จ.านว่นที่ศน�ยุม่

8 ไบต์�

คื�าที่��ไม่�ม่�ที่ศน�ยุม่ - +/79,228,162,514,264,337,593,543,950,335 คื�าที่��ม่�ที่ศน�ยุม่ - +/7.92281625142643 37593543950335 และม่�ที่ศน�ยุม่ 28 ต์.าแห้น�ง

String ข�อคืว่าม่    

Page 9: Chapter 5 Variable Data & Operator

Type of Data (ตั อ)ประเภที่ข้�อมู�ล

ประเภที่ ข้นาด

การเก�บข้�อมู�ลหร�อช่ วงข้�อมู�ล

Date ว่!นที่��/เว่ลา 8 ไบต์�

เก$บคื�าระห้ว่�าง 1 ม่กราคืม่ คื.ศ .100 ถ,ง 31 ธิ!นว่าคืม่ คื.ศ .9999 และเว่ลาใดๆ Date ใช� 8 ไบต์�เห้ม่&อนก!บ Double แต์�โคืรงสิ่ร�างม่�คืว่าม่แต์กต์�างก!น โดยุสิ่�ว่นจ.านว่นเต์$ม่เป�นสิ่ารสิ่นเที่ศของว่!น และที่ศน�ยุม่เป�นสิ่�ว่นของเว่ลา

Variant Variant 16 ไบต์�

เก$บคื�าของต์!ว่แปร Variant จะร!กษาประเภที่ข�อม่�ลเด�ม่ของต์!ว่แปรและคื�าเร��ม่ต์�นของต์!ว่แปร

อ:อบเจคื อ:อบเจคื   เก$บการอ�างอ�ง

Page 10: Chapter 5 Variable Data & Operator

การใช�งานต์!ว่แปรแบบใช�สิ่!ญล!กษณ�พ�เศษก.าก!บ

คื�ณยุ!งสิ่าม่ารถใช�งานต์!ว่แปรได� โดยุการใช�สิ่!ญล!กษณ�พ�เศษต์�อที่�ายุต์!ว่แปรน!*นๆ ให้�คื�ณด�ต์ารางต์�อไปน�*

ชน�ดของข�อม่�ล สิ่!ญล!กษณ�พ�เศษ

Integer %

Long &

Single !

Double #

Currency

@

String $

Page 11: Chapter 5 Variable Data & Operator

การใช�งานต์!ว่แปรแบบใช�สิ่!ญล!กษณ�พ�เศษก.าก!บ การประกาศใช�งานต์!ว่แปรแบบปกต์� ถ�าคื�ณต์�องการต์!ว่แปรแบบ Integer

คื�ณจะต์�องประกาศ ด!งน�*

Dim x As Integer   ห้ม่ายุถ,ง ให้�ต์!ว่แปร x เก$บข�อม่�ลชน�ดเลขจ.านว่นเต์$ม่

แต์�คื�ณสิ่าม่ารถใช�สิ่!ญล!กษณ�พ�เศษต์�อที่�ายุต์!ว่แปรเพ&�อ ก.าห้นดให้�ต์!ว่แปรแที่นชน�ดของข�อม่�ลที่��คื�ณ

ต์�องการได� ซึ่,�งถ�าคื�ณใช�ว่�ธิ�น�* คื�ณต์�องใช�ต์ลอดที่!*งโพรซึ่�เดอร� เช�นDim x%   ห้ม่ายุถ,ง ให้�ต์!ว่แปร x เก$บข�อม่�ลชน�ดเลขจ.านว่นเต์$ม่ Integer เช�นก!น Dim x&   ห้ม่ายุถ,ง ให้�ต์!ว่แปร x เก$บข�อม่�ลชน�ดเลขจ.านว่นเต์$ม่ Long Dim x!   ห้ม่ายุถ,ง ให้�ต์!ว่แปร x เก$บข�อม่�ลชน�ดเลขที่ศน�ยุม่แบบ Single (คืว่าม่ละเอ�ยุดต์.�า) Dim x#   ห้ม่ายุถ,ง ให้�ต์!ว่แปร x เก$บข�อม่�ลชน�ดเลขที่ศน�ยุม่แบบ Double (คืว่าม่ละเอ�ยุดสิ่�ง) Dim x@   ห้ม่ายุถ,ง ให้�ต์!ว่แปร x เก$บข�อม่�ลชน�ดเลขที่างการเง�น Currency Dim x$   ห้ม่ายุถ,ง ให้�ต์!ว่แปร x เก$บข�อม่�ลชน�ดข�อคืว่าม่ String

Page 12: Chapter 5 Variable Data & Operator

Operators : ต์!ว่ด.าเน�นการตั�วด"าเน#นการใน Visual Basic

(Operators) คื&อ เคืร&�องห้ม่ายุสิ่.าห้ร!บกระที่.าก!บข�อม่�ลอยุ�างน�อยุที่��สิ่�ด 2 ช�ดม่ากระที่.าอยุ�างใดอยุ�างห้น,�ง เช�น บว่ก ลบ เช&�อม่ต์�อ เปร�ยุบเที่�ยุบ ที่ดสิ่อบคื�า เป�นต์�น ซึ่,�งสิ่าม่ารถแบ�งได� 4 ประเภที่ ด!งน�*

Page 13: Chapter 5 Variable Data & Operator

Arithmetic Operators

• ตั�วด"าเน#นการด�านค่ณิ#ตัศาสตัร( (Arithmetic Operators) คื&อเคืร&�องห้ม่ายุที่างคืณ�ต์ศาสิ่ต์ร�ใช�สิ่.าห้ร!บการคื.านว่ณต์!ว่เลข ด!งต์าราง

  ช&�อต์!ว่ด.าเน�นการ ล!กษณะต์!ว่ด.าเน�นการ   ต์!ว่อยุ�าง  การบว่ก +   A + B

  การลบ -   A - B

  การคื�ณ *   A * B

  การห้าร /   A / B

  การห้ารเอาแต์�จ.านว่นเต์$ม่ \   A \ B

  การห้ารเอาแต์�เศษ Mod   A Mod B

  การยุกก.าล!ง ^   A ^ B

  การเปล��ยุนเคืร&�องห้ม่ายุ -   -A

Page 14: Chapter 5 Variable Data & Operator

รายุละเอ�ยุดของต์!ว่ด.าเน�นการที่างคืณ�ต์ศาสิ่ต์ร�การบว่ก, ลบ, คื�ณ, ห้าร เป�นไปต์าม่กฏที่างคืณ�ต์ศาสิ่ต์ร� ที่��น�า

สิ่นใจคื&อ - การห้ารจ.านว่นเต์$ม่ ห้ม่ายุถ,ง จะเอาแต์�เฉพาะเลขที่��เป�น

จ.านว่นเต์$ม่เที่�าน!*น สิ่�ว่นเศษ จะป8ดที่�*ง เช�น 10\6=1.6666 แต์�จะได�ผลล!พธิ�เที่�าก!บ 1 แม่�ว่�า .6666 จะเก�นคืร,�งก$ต์าม่ ไม่�ม่�การป8ดเศษแต์�อยุ�างใด

- การ Mod ห้ม่ายุถ,ง จะเอาแต์�เศษที่��เห้ล&ออยุ��จากการ Mod เช�น10 Mod 3 =1 เน&�องจาก 10 ห้าร 3 ไม่�ลงต์!ว่ เห้ล&อเศษ 1 จ,งได�ผลล!พธิ� 1, 20 Mod 6 =2 (เห้ล&อเศษ 2 น!�นเอง)

Page 15: Chapter 5 Variable Data & Operator

Logical Operator ตั�วด"าเน#นการที่างด�านตัรรกะ (Logical Operator)

คื&อเคืร&�องห้ม่ายุสิ่.าห้ร!บต์รว่จสิ่อบเง&�อนไขระห้ว่�างกล��ม่น�พจน� โดยุจะให้�ผลล!พธิ�เป�นจร�ง (True) และเป�นเที่$จ (False) ห้ร&อสิ่ร�างเง&�อนไขข,*นม่าเพ&�อที่ดสิ่อบกรณ�ต์�าง ๆ ด!งต์าราง

  ต์!ว่ด.าเน�นการ ต์!ว่อยุ�าง   ผลล!พธิ�  And A And B   เป�นจร�งเม่&�อที่!*ง 2 น�พจน�ม่�คื�าเป�นจร�ง  Or A Or B   เป�นเที่$จเม่&�อที่!*ง 2 น�พจน�ม่�คื�าเป�นเที่$จ  Xor A Xor B   เป�นจร�งเม่&�อที่!*ง 2 น�พจน�ม่�คื�าต์�างก!น  Eqv A Eqv B   เป�นจร�งเม่&�องที่!*ง 2 น�พจน�ม่�คื�าเห้ม่&อนก!น

  Imp A Imp B  เป�นเที่$จเม่&�อน�พจน�ห้น�าเป�นจร�ง น�พจน�ห้ล!งเป�นเที่$จ

  Not Not A   ให้�คื�าต์รงข�าม่ก!บคื�าของน�พจน�

Page 16: Chapter 5 Variable Data & Operator

ต์!ว่ด.าเน�นการที่างด�านต์รรกะ (Logical Operator)

A B And Or Xor Eqv Imp Not A

 True  True True True False True True False

 True False False True True False False False

False  True False True True False True True

False False FalseFals

eFalse True True True

Page 17: Chapter 5 Variable Data & Operator

Comparison Operators ตั�วด"าเน#นการที่างด�านการเปร�ยบเที่�ยบ (Comparison

Operators) เคืร&�องห้ม่ายุที่��ใช�สิ่.าห้ร!บเปร�ยุบเที่�ยุบน�พจน� 2 น�พจน� เพ&�อที่ดสิ่อบ ห้ร&อสิ่ร�างเง&�อนไข โดยุจะให้�ผลล!พธิ�เป�นจร�ง (True) และเป�นเที่$จ (False) ม่!กจะใช�คื��ก!บต์!ว่ด.าเน�นการที่างด�านต์รรกะ เพ&�อต์รว่จสิ่อบเง&�อนไขต์�าง ๆ เสิ่ม่อ ด!งต์าราง

  ต์!ว่ด.าเน�นการ   ช&�อต์!ว่ด.าเน�นการ<   น�อยุกว่�า>   ม่ากกว่�า

<=   น�อยุกว่�าห้ร&อเที่�าก!บ>=   ม่ากกว่�าห้ร&อเที่�าก!บ=   เที่�าก!บ

<>   ไม่�เที่�าก!บ

Page 18: Chapter 5 Variable Data & Operator

Concentration Operators ตั�วด"าเน#นการที่างด�านการเช่��อมูข้�อค่วามู

(Concentration Operators) เคืร&�องห้ม่ายุที่��ใช�สิ่.าห้ร!บเช&�อม่ข�อคืว่าม่ต์!*งแต์� 2 ข�อคืว่าม่เข�าด�ว่ยุก!น แต์�ยุ!งม่�กรณ�ยุกเว่�นที่��จะเป�นการบว่กก!นของน�พจน� 2 น�พจน� ซึ่,�งข,*นอยุ��ก!บชน�ดของน�พจน�ที่��จะม่ากระที่.าก!น ด!งต์าราง

  ตั�วด"าเน#นการ กรณิ� ตั�วอย าง   ผลล�พธ์(

+   String + String  "Visual"+"Basic 6.0"

  "Visual Basic 6.0"

&   String & String  "Visual"&"Basic 6.0"

  "Visual Basic 6.0"

+  String(numeric)+numeric

  "20"+6   26

&  String(numeric)&numeric

  "20"+6   206

Page 19: Chapter 5 Variable Data & Operator

ล"าด�บการค่"านวณิ

Arithmetic Comparison Logical

Exponentiation (^)

Equality (=) Not

Negation (-) Inequality (<>) And

Multiplication and division (*, /)

Less than (<) Or

Integer division (\)

Greater than (>) Xor

Modulus arithmetic (Mod)

Less than or equal to (<=)

Eqv

Addition and subtraction (+, -)

Greater than or equal to (>=)

Imp

String concatenation (&)

Is &

Page 20: Chapter 5 Variable Data & Operator

ขอบเขต์ของต์!ว่แปร(Scope of variable)

ใน Visual Basic สิ่าม่ารถแบ�งขอบเขต์ต์!ว่แปรได� 2 ประเภที่ คื&อต์!ว่แปรแบบโลคือล (Local)ต์!ว่แปรแบบโกลบอล (Global)

Private ใช�ได�ที่�กโปรแกรม่ยุ�อยุใน Form ที่��ประกาศ

Public ใช�ได�ที่�กโปรแกรม่ยุ�อยุในโปรแกรม่

Page 21: Chapter 5 Variable Data & Operator

Variable : ตั�วแปรข้อบเข้ตัข้องตั�วแปร (ตั อ)

ขอบเขต์ (Scope) ห้ร&อการม่องเห้$น ของต์!ว่แปร เป�นการระบ�เข�าถ,งต์!ว่แปร เช�น ต์!ว่แปรที่��ก.าห้นดเป�น public สิ่าม่ารถอ�านและเข�ยุนได�จากที่�กสิ่�ว่นของโปรแกรม่ แต์�ถ�าก.าห้นดต์!ว่แปรเป�น private จะเข�าถ,งได�เฉพาะภายุในโม่ด�ล

Page 22: Chapter 5 Variable Data & Operator

ตั�วแปร Global ห้ม่ายุถ,ง ตั�วแปร global สามูารถอ านและน"าไปใช่�จากที่0กส วนในโปรแกรมู ในส วนการประกาศข้อง โมูด�ล BAS

Public UserCount as Long ในส วนการประกาศข้องฟอร(มู

Public CustomerName As String

       

Page 23: Chapter 5 Variable Data & Operator

ตั�วแปร Local

เป�นการประกาศภายุใน procedure และม่�ขอบเขต์เฉพาะภายุใน procedure อายุ�ของต์!ว่แปรข,*นก!บ procedure โดยุที่�กคืร!*งที่��ประม่ว่ลผล procedure จ,งจะม่�การสิ่ร�างต์!ว่แปร เม่&�อออกจาก procedure ต์!ว่แปรจะถ�กลบห้น�ว่ยุคืว่าม่จ.า

เช�น Sub Print_Invoice ( )Dim text As String'…End Sub

Page 24: Chapter 5 Variable Data & Operator

ตั�วแปร Public หมูายถ3ง ตั�วแปรที่��ประกาศข้3�นในส วนบนหล�ง

Option Explicit ที่"าให�สามูารถเร�ยกใช่�งานได�ที่0กโพรซี�เดอร(ในฟอร(มูน��น กรณิ�ที่��ประกาศตั�วแปรแบบ Public ใน Module จะที่"าให�ตั�วแปรน��นสามูารถเร�ยกใช่�งานได�จากที่0กฟอร(มู

ตั�วอย างOption Explicit        Dim x as Integer        Dim y as Integer        Private Sub AddNum_Click( )                x = 5                y = 6                x = x + y

       End Sub        

       Private Sub DelNum_Click( )                x = x - y        End Sub

จากต์!ว่อยุ�าง ต์!ว่แปร x และ y ถ�กประกาศในถ!ดจาก Option Explicit ก�อน Sub AddNum ที่.าให้�ต์!ว่แปร x และ y ใน Sub AddNum และ Sub DelNum เป�นต์!ว่แปรต์!ว่เด�ยุว่ก!น

Page 25: Chapter 5 Variable Data & Operator

ตั�วอย างแสดง Scope ข้องตั�วแปรที่0กช่น#ด

ค่"าอธ์#บาย

Page 26: Chapter 5 Variable Data & Operator

ตั�วแปรอาร(เรย( (Array) ต์!ว่แปรอาร�เรยุ� เป�นกล��ม่ของต์!ว่แปรที่��ประกาศ

ข,*นม่า โดยุใช�ช&�อของเด�ยุว่ใช�คื�า Index ในการอ�างถ,ง ประโยุชน�ของต์!ว่แปรชน�ดน�*คื&อ กรณ�ที่��ต์�องการม่�การใช�ต์!ว่แปรจ.านว่นม่าก การประกาศต์!ว่แปรสิ่าม่ารถประกาศเพ�ยุงช&�อเด�ยุว่ ลดคืว่าม่ซึ่.*าซึ่�อนของต์!ว่แปร และที่.าให้�ง�ายุต์�อการเร�ยุกใช� ม่�ร�ปแบบการประกาศด!งน�*

Page 27: Chapter 5 Variable Data & Operator

ร�ปแบบการประกาศตั�วแปรอาร(เรย( (Array)

Dim คื&อ คื.าสิ่!�ง (statements) สิ่.าห้ร!บประกาศต์!ว่แปร

varname

คื&อ ช&�อของต์!ว่แปรอาร�เรยุ�ที่��ต์�องการประกาศ

amount

คื&อ จ.านว่นสิ่ม่าช�กของอาร�เรยุ�

As คื&อ สิ่�ว่นที่��บอกให้� Visual Basic ที่ราบว่�าต์�องการก.าห้นดชน�ดของข�อม่�ล

datatypes

คื&อ ชน�ดของข�อม่�ลที่�� Visual Basic สิ่น!บสิ่น�น

Dim Varname(amount) as Datatype

Page 28: Chapter 5 Variable Data & Operator

ช่น#ดข้องตั�วแปรอาร(เรย( (Array) ต์!ว่แปรอาร�เรยุ�แบ�งออกได� 2 ชน�ด คื&อ

1. ต์!ว่แปรอาร�เรยุ�แบบสิ่แต์ต์�ก (Static Arrays)

2. ต์!ว่แปรอาร�เรยุ�แบบไดนาม่�ก (Dynamic Arrays)

Page 29: Chapter 5 Variable Data & Operator

ตั�วแปรอาร(เรย(แบบสแตัตั#ก (Static Arrays) เป�นอาร�เรยุ�ที่��ม่�การระบ�จ.านว่นสิ่ม่าช�กเม่&�อม่�การประกาศต์!ว่แปร จะใช�

อาร�เรยุ�ชน�ดน�*ในกรณ�ที่��ที่ราบจ.านว่นสิ่ม่าช�กของอาร�เรยุ�ที่��แน�นอน ตั�วอย าง

Dim vprint (10) as Stringจากต์!ว่อยุ�างเป�นการประกาศต์!ว่แปรอาร�เรยุ�ช&�อ vprint ให้�ม่�จ.านว่นสิ่ม่าช�กที่!*งสิ่�*น 10 และ เป�นข�อม่�ลชน�ดต์!ว่อ!กษร ในการอ�างถ,งต์!ว่แปรให้�ที่.าการระบ� Index ห้ร&อล.าด!บที่��ของสิ่ม่าช�ก โดยุสิ่ม่าช�กต์!ว่แรกให้�ระบ� Index เป�น 0 เช�น เม่&�อต์�องการอ�างถ,งสิ่ม่าช�กต์!ว่แรกสิ่�ดให้�ระบ�เป�น vprint(0)สิ่ม่าช�กต์!ว่ที่�� 7 ให้�ระบ�เป�น vprint(6) สิ่ม่าช�กต์!ว่สิ่�ดที่�ายุระบ�เป�น vprint(9)

Page 30: Chapter 5 Variable Data & Operator

ตั�วแปรอาร(เรย(แบบไดนามู#ก (Dynamic Arrays) เป�นอาร�เรยุ�ที่��ไม่�ม่�การระบ�จ.านว่นสิ่ม่าช�กเม่&�อม่�การประกาศต์!ว่แปร

เน&�องจากไม่�ที่ราบจ.านว่นสิ่ม่าช�กที่��แน�นอนตั�วอย าง       Dim ccode( ) as Stringจากต์!ว่อยุ�างเป�นการประกาศต์!ว่แปรอาร�เรยุ�ช&�อ ccode โดยุไม่�

ระบ�จ.านว่นสิ่ม่าช�ก และเป�นข�อม่�ลชน�ดต์!ว่อ!กษร เม่&�อต์�องการใช�งานต์!ว่แปรจะต์�องระบ�จ.านว่นสิ่ม่าช�กให้�ก!บต์!ว่แปรอาร�เรยุ� โดยุใช�คื.าสิ่!�งด!งน�*

       Redim ccode(5)จากต์!ว่อยุ�างเป�นการก.าห้นดให้�ต์!ว่แปรอาร�เรยุ� ccode ที่��ได�

ประกาศไว่�แล�ว่ให้�ม่�จ.านว่นสิ่ม่าช�ก 5

Page 31: Chapter 5 Variable Data & Operator

ข�อด�ของต์!ว่แปรอาร�เรยุ�แบบไดนาม่�กคื&อ จ.านว่นสิ่ม่าช�กของอาร�เรยุ�จะถ�กก.าห้นดให้�ม่�คืว่าม่เห้ม่าะสิ่ม่ต์�อการใช�งานเน&�อง เน&�องจากสิ่าม่ารถระบ�จ.านว่นสิ่ม่าช�กได�ภายุห้ล!ง แต์�ต์!ว่แปรอาร�เรยุ�แบบสิ่แต์ต์�กจะต์�องระบ�จ.านว่นสิ่ม่าช�กที่!นที่�ที่��ม่�การประกาศต์!ว่แปร การสร�างช่น#ดข้องตั�วแปรข้3�นใช่�เอง (User-defined data type)

กรณ�ที่��ต์�องการเก$บข�อม่�ลเป�นช�ดแต์�ประกอบด�ว่ยุข�อม่�ลห้ลายุ ๆ ชน�ด สิ่าม่ารถที่.าได�โดยุการสิ่ร�างชน�ดข�อม่�ลพ�เศษข,*นม่า โดยุน.าชน�ดของข�อม่�ลพ&*นฐานด!งกล�าว่ที่!*งห้ม่ดม่าสิ่ร�างต์าม่ที่��ต์�องการโดยุม่�ร�ปแบบด!งน�*

       [Public I Private] Type Varname               elementname [([subscripts])] As type               [elementname [([subscripts])] As type]               ……        End Type

Page 32: Chapter 5 Variable Data & Operator

Public(Optional) คื&อ สิ่�ว่นที่��ก.าห้นดให้�คื�าคืงที่��สิ่าม่ารถใช�ได�ที่! *งโปรเจ$กต์� ที่�กโม่ด�ล

Private(Optional) คื&อ สิ่�ว่นที่��ก.าห้นดให้�คื�าคืงที่��สิ่าม่ารถใช�ได�เฉพาะโม่ด�ลที่��ประกาศเที่�าน!*น

Varname คื&อ ช&�อของชน�ดข�อม่�ลที่��ก.าห้นดข,*นม่าให้ม่�

elementname คื&อ ช&�อของต์!ว่แปร ซึ่,�งเป�นสิ่�ว่นห้น,�งของชน�ดข�อม่�ลที่��สิ่ร�างข,*นม่า

Subscripts คื&อ จ.านว่นสิ่ม่าช�กกรณ�ที่��ต์�องการให้�เป�นต์!ว่แปรอาร�เรยุ

Type คื&อ ชน�ดของข�อม่�ลพ&*นฐานแต์�ละต์!ว่

Page 33: Chapter 5 Variable Data & Operator

ตั�วอย าง        Type Customer               CustName As String               Address As String               Age As Integer        End Type จากต์!ว่อยุ�างเป�นการสิ่ร�างชน�ดข�อม่�ลข,*นม่าให้ม่� โดยุให้�ช&�อว่�า

Customer โดยุม่�ต์!ว่แปรยุ�อยุ Name Address และ Age เม่&�อต์�องการใช�งานชน�ดข�อม่�ลด!งกล�าว่ต์�องที่.าการประกาศต์!ว่แปรด!งน�*

       Dim newcust As Customerเม่&�อต์�องการเก$บคื�าห้ร&อน.าคื�าไปใช�ให้�ใช�คื.าสิ่!�งด!งน�*        newcust.CustName = “ผลที่�พยุ� ป8* นน�อยุ "       newcust.Address = “1381 ถ.นว่ม่�นที่ร� คืลองจ!�น บางกะป>

กที่ม่”       newcust.Age = 15

Page 34: Chapter 5 Variable Data & Operator

การประกาศค่ าค่งที่�� (Constant)

คื�าคืงที่�� (Constant) ห้ม่ายุถ,งข�อม่�ลที่��ม่�คื�าคืงที่��ไม่�ม่�การเปล��ยุนแปลง ในการประกาศคื�าคืงที่��ต์�องใช�คื.าสิ่!�ง Const เพ&�อสิ่ร�างคื�าคืงที่�� ม่�ร�ปแบบด!งน�*

[Public I Private] Const constname [As type] = expression

Page 35: Chapter 5 Variable Data & Operator

Public(Optional)

คื&อ สิ่�ว่นที่��ก.าห้นดให้�คื�าคืงที่��สิ่าม่ารถใช�ได�ที่!*งโปรเจ$กต์� ที่�กโม่ด�ล

Private(Optional)

คื&อ สิ่�ว่นที่��ก.าห้นดให้�คื�าคืงที่��สิ่าม่ารถใช�ได�เฉพาะโม่ด�ลที่��ประกาศเที่�าน!*น

Const คื&อ คื.าสิ่!�งสิ่ร�างคื�าคืงที่��

Constname คื&อ ช&�อคื�าคืงที่��

Type (Optional) คื&อ การก.าห้นดชน�ดของคื�าคืงที่��

Expression คื&อ คื�าที่��ต์�องการก.าห้นด

Page 36: Chapter 5 Variable Data & Operator

การประกาศค่ าค่งที่�� (Constant)  ตั�วอย าง               Option Explicit               Const PI As Double = 3.141578               Private Sub cmdCalc_Click( )                      Dim radius As Double                      Dim area As Double                      Radius = CDb(InputBox("กร�ณาใสิ่�คื�าร!ศม่� " , "ใสิ่�

คื�า ")                     Area = PI * (radius) ^2                      MsgBox "พ&*นที่��ว่งกลม่ = " & Area & " ต์ารางห้น�ว่ยุ "              End Sub