บทที่ 8 ตัวแปร...

21
บบบบบ 8 บบบบบบ บบบบ บบบบบบบบบบบบบบบบบบบ บบบบบบบบบ บบบบบบ บ.บบบบ บบบบบบ Roseyayee.wordpress.com [email protected] Tel 089-7204020 1

Upload: rayya

Post on 19-Jan-2016

52 views

Category:

Documents


0 download

DESCRIPTION

บทที่ 8 ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต และเซล. อ.รจนา วานนท์ Roseyayee.wordpress.com [email protected] Tel 089-7204020. ตัวแปร และชนิดข้อมูลใน VBA. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

1

บทท�� 8 ตั�วแปร ชนิ�ดข้�อมู�ลและการอ�างถึ�ง เว�ร�กช�ตั และเซล

อ.รจนิา วานินิท�Roseyayee.wordpress.com

[email protected] Tel 089-7204020

Page 2: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

2

ตั�วแปร และชนิ�ดข้�อมู�ลในิ VBA

• ตั�วแปร คือ หน่ วยคืวามจำ�าสำ�าหร�บเก็�บข้�อม�ลชน่�ดตั าง ๆ โดยใช�สำ�ญล�ก็ษณ์&เป'น่ตั�วอ�ก็ษรตัามที่)*ก็�าหน่ดข้+,น่ เช น่ X,Y,Price,Sales,cost ก็ารเข้)ยน่โคื-ด VBA ใน่ Excel ตั�องม)ก็ารสำ งคื าไปย�งเซลตั าง ๆ ใน่เว�ร&ก็ช)ตั หรอก็ารน่�าคื าจำาก็เซลใน่เว�ร&ก็ช)ตัมาคื�าน่วณ์หรอประมวลผล ว�ธี)ก็ารเก็�บคื าจำาก็เซลก็ อน่น่�าไปคื�าน่วณ์หรอสำ งไปย�งเซล คืวรจำะพั�ก็เก็�บใน่ตั�วแปร จำะที่�าให�โคื�ด VBA ที่)*สำร�างข้+,น่ม)คืวามยดหย4 น่และสำะดวก็ใน่ก็ารเร)ยก็ใช�งาน่มาก็ข้+,น่

Page 3: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

3

ชนิ�ดข้�อมู�ลประเภท ชนิ�ดข้�อมู�ล ข้อบเข้ตั หนิ#วยความูจ&าท��ใช�

ตั�วเลข้ Byte จำ�าน่วน่เตั�ม 0 ถึ+ง 255 1 byte

Integer จำ�าน่วน่เตั�ม -32,768 ถึ+ง 32,767 2 byte

Long จำ�าน่วน่เตั�ม -2,1347,483,648 ถึ+ง -2,1347,483,648

4 byte

Double ที่ศน่�ยม ช วงคื าน่�อยก็ว า 0ที่ศน่�ยม ช วงคื ามาก็ก็ว า 0

8 byte

ตัรรก็ะ Boolean True หรอ False ใช�สำ�าหร�บตัรวจำสำอบคื าจำร�งหรอเที่�จำ

2 byte

ข้�อคืวาม String ชน่�ดจำ�าน่วน่ตั�วอ�ก็ษรไม แน่ น่อน่ 10 byte+คืวามยาวตั�วอ�ก็ษร

ว�น่ที่)*เวลา Date 1 January 0100 ถึ+ง 31

December 9999 และเวลา 00.00.00 ถึ+ง 23:59:59

8 byte

Page 4: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

4

หล�กการตั�'งช(�อตั�วแปร• ตั�องข้+,น่ตั�น่ด�วยตั�วอ�ก็ษร หรอ Underscore (_) เที่ าน่�,น่• ตั�วถึ�ดไปจำะเป'น่ตั�วเลข้ ตั�วอ�ก็ษร หรอ Underscore ก็�ได�• ตั�วอ�ก็ษรพั�มพั&เล�ก็พั�มพั&ใหญ ไม ม)คืวามแตัก็ตั างก็�น่

(Non-Case Sensitive)• ห�ามใช�คื�าสำงวน่ (Reserved Word)• ช*อตั�องม)คืวามยาวไม เก็�น่ 255 ตั�วอ�ก็ษร• ใน่ก็ารตั�,งช*อตั�วแปรน่�,น่เราสำามารถึตั�,งช*ออะไรก็�ได� แตั คืวร

ตั�,งช*อให�สำ*อคืวามหมายและสำามารถึบอก็ชน่�ดข้องตั�วแปรน่�,น่ ๆ เพั*อให�ง ายตั อก็ารแก็�ไข้และพั�ฒน่าช4ดคื�าสำ�*งใน่ภายหล�ง

Page 5: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

5

การสร�างตั�วแปรไว�ใช�งานิ• ร�ปแบบก็ารสำร�างตั�วแปรจำะใช�คื�าว า Dim ช*อตั�วแปร As ชน่�ดข้�อม�ลข้องตั�วแปร เปร)ยบเสำมอน่ก็ารแจำ�งก็�บ Excel ให�ร� �ก็ อน่ใช�งาน่โคื-ด VBA ว าได�สำร�างตั�วแปรข้+,น่มาแล�ว ใน่ภาษาคือมพั�วเตัอร&ที่�*วไปน่�ยมเร)ยก็ก็ารสำร�างตั�วแปรไว�ใช�งาน่ว า ก็ารประก็าศตั�วแปร ม)ร�ปแบบด�งน่),

ร�ปแบบDim ช*อตั�วแปร As ชน่�ดข้�อม�ลข้อง

ตั�วแปร

Page 6: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

6

ตั�วอย#างการสร�างตั�วแปรส&าหร�บการใช�งานิ VBA

• Dim x As Integer ให�ตั�วแปร x เก็�บคื าข้�อม�ลประเภที่ตั�วเลข้จำ�าน่วน่เตั�ม• Dim price As Single ให�ตั�วแปรช*อ

Price เก็�บคื าข้�อม�ลประเภที่ตั�วเลข้ที่ศน่�ยม• Dim complain As String ให�ตั�วแปร

ช*อ Complain เก็�บคื าข้�อม�ลาประเภที่ตั�วอ�ก็ษร

Page 7: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

7

พิ�มูพิ�โค-ด VBA ตั�'งช(�อว#า test_var

ประก็าศตั�วแปร

ก็�าหน่ดคื าให�ตั�วแปร

แสำดงข้�อม�ลใน่เซลจำาก็คื าข้องตั�วแปร

Page 8: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

8

ตั�วด&าเนิ�นิการ (Operators)ตั�วด&าเนิ�นิการข้องข้�อมู�ล

ชนิ�ดตั�วเลข้ตั�วด&าเนิ�นิการ

ข้องข้�อมู�ล ประเภท String

ตั�วด&าเนิ�นิการข้องข้�อมู�ล

ประเภท Boolean

ตั�วด�าเน่�น่ก็ารด�าน่ก็ารคื�าน่วณ์

ตั�วด�าเน่�น่ก็ารด�าน่ก็ารเปร)ยบ

เที่)ยบ

+ บวก็ > มาก็ก็ว า &(ใช�สำ�าหร�บ ก็ารน่�า

ตั�วอ�ก็ษรหรอข้�อคืวามเช*อมตั อ

ก็�น่)

And

จำร�งเม*อที่�,ง 2

เง*อน่ไข้จำร�ง- ลบ < น่�อยก็ว า Or เที่�จำเม*อที่�,ง 2

เง*อน่ไข้เที่�จำ* คื�ณ์ >

=มาก็ก็ว าหรอเที่ าก็�บ

Not

ให�คื าตัรงก็�น่ข้�ามก็�บเง*อน่ไข้แรก็

/ หาร <=

น่�อยก็ว าหรอเที่ าก็�บ

Xor

จำร�งเม*อที่�,ง 2

เง*อน่ไข้ตั างก็�น่\ หารเอา

จำ�าน่วน่เตั�ม

= เที่ าก็�บ Eqv

จำร�งเม*อที่�,ง 2

เง*อน่ไข้เหมอน่ก็�น่

^ ยก็ก็�าล�ง <>

ไม เที่ าก็�บ Imp

เที่�จำเม*อเง*อน่ไข้หน่�าจำร�งหล�งเที่�จำ

mod

หารเอาเศษ

Page 9: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

9

ตั�วอย#างการใช�งานิตั�วด&าเนิ�นิการ

ตั�วอย#าง ผลล�พิธ์�ท��ได�S = 2*5 10t = 10/3 3.3333X = 10\3 3Y = 10 mod 3

1

Z = “Excel” & “VBA”

ExcelVBA

Page 10: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

10

การป0องก�นิการล(มูด�วยการเข้�ยนิ Comments ในิโค�ด VBA

• ว�ธี)ก็ารเข้)ยน่ comments ให�ใสำ เคืร*องหมาย ’ ข้�างหน่�า comments ที่)*เราตั�องก็าร ตั�วอ�ก็ษรที่)*เข้)ยน่ที่�,งหมดจำะเป'น่สำ)เข้)ยวหล�งจำาก็ข้+,น่บรรที่�ดใหม และโปรแก็รมจำะมองเห�น่ว าสำ วน่น่),เป'น่ comments ไม ใช โคื-ด VBA ก็�จำะข้�ามสำ วน่น่),ไป

Page 11: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

11

Page 12: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

12

การอ�างถึ�ง เว�ร�กช�ตั และเซล• ว�ธี)อ�างถึ+งเว�ร&ก็ช)ตั By name

• ว�ธี)อ�างถึ+งเว�ร&ก็ช)ตั By Index

ร�ปแบบWorksheets(“sheet1”).Range(“a1”).V

alue = 5Worksheets(“Sales”).Range(“e1”).Val

ue = 3000

ร�ปแบบWorksheets(1).Range(“a1”).Value =

5Worksheets(3).Range(“e3”).Value =

“Customer list”

Page 13: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

13

การอ�างถึ�ง เว�ร�กช�ตั และเซล• ว�ธี)อ�างถึ+งเว�ร&ก็ช)ตัที่)*ถึ�ก็เร)ยก็ใช�งาน่

ไม ตั�องระบ4ช*อเว�ร&ก็ช)ตั คื�าว า ActiveSheet จำะหมายถึ+งเว�ร&ก็ช)ตัที่)*ถึ�ก็เร)ยก็ใช�งาน่อย�

ร�ปแบบActiveSheet.Range(“a1”).Value = 5ActiveSheet.Range(“e2”).Value =

3000ActiveSheet.Range(“c3”).Value =

“Transportantion”

Page 14: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

14

การอ�างถึ�ง เว�ร�กช�ตั และเซล (ตั#อ)• ว�ธี)อ�างถึ+งเซล By name

• ว�ธี)อ�างถึ+งเซล By Index

ร�ปแบบWorksheets(“sheet1”).Range(“a5”).V

alue = 5Worksheets(“marketing”).Range(“ce

100”).Value = “Budget”Worksheets(“sheet1”).Range(“f:g”).V

alue = “OK”ร�ปแบบWorksheets(“sheet1”).Cells(“5,1”).Va

lue = 25Worksheets(“cost”).Cells(“225,2”).Va

lue = 350

ตั�าแหน่ งคือล�มน่&

ตั�าแหน่ งแถึว

ช*อข้องเซล

Page 15: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

15

การอ�างถึ�ง เว�ร�กช�ตั และเซล (ตั#อ)• ว�ธี)อ�างถึ+งเซล By Index

• ก็ารอ�างอ�งเซลที่)*ถึ�ก็เร)ยก็ใช�งาน่

ร�ปแบบการอ�างถึ�งเซลท��มูากกว#า 1 เซล ด�วยว�ธ์� by indexWorksheets(“sheet1”).Range(Cells(1,1),

Cells(3,5)).Value = 4Worksheets(“sheet1”).Range(Cells(2,3),

Cells(10,8)).Value = “VBA”

ร�ปแบบ ActiveCell.Value = 25 ActiveCell.Value = “Profit”

Page 16: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

16

การอ�างถึ�ง เว�ร�กช�ตั และเซล (ตั#อ)• ว�ธี)อ�างถึ+งเซล By relative

ร�ปแบบ ActiveCell.Offset(2,3).Value = 25 ActiveCell.Offset(-1,5).Value = 25 ActiveCell.Offset(-2,3).Value = 25

ตั�าแหน่ งแถึวเพั�*มจำาก็เซล

ที่)*ถึ�ก็เร)ยก็ใช�งาน่ไป2 แถึว

ตั�าแหน่ งคือล�มน่&เพั�*มจำาก็คือล�มน่&ข้องเซล

ที่)*ถึ�ก็เร)ยก็ใช�งาน่ไป 3 คือล�มน่&

Page 17: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

17

การอ�างถึ�ง เว�ร�กช�ตั และเซล (ตั#อ)• ว�ธี)อ�างถึ+งเซล By named ranges

ร�ปแบบ Worksheets(“sheet1”).Range(“center”).Value = “Bangkok” Worksheets(“Finance”).Range(“interest rate”).Value = 0.0675

ช*อข้องเซลที่)*ตั�,งช*อไว�ใน่ Excel

Page 18: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

18

การค&านิวณมู�ลค#าเง�นิฝากธ์นิาคาร

• สำร�าง Procedure คื�าน่วณ์ม�ลคื าข้องเง�น่ฝาก็ธีน่าคืาร โดยร�บคื าจำ�าน่วน่เง�น่ฝาก็ อ�ตัราดอก็เบ),ย จำ�าน่วน่ป:ที่)*ฝาก็จำาก็เว�ร&ก็ช)ตั โดย Porcedure น่),ตั�องสำามารถึสำ�*งใช�งาน่ใน่ เว�ร&ก็ช)ตัใด ๆ ก็�ได�ใน่ไฟล&เด)ยวก็�น่

Page 19: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

19

• 1 deposit_amout Single• 2. interest_rate Single• 3. period Integer• 4. future_amount Single

ตั�วแปร = ActiveSheet.Range(“a1”).ValueFuture_amount = deposit_amout * (1 + interest_rate) ^ Period

ActiveSheet.Range(“a4”).Value = future_amount

Page 20: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

20

Page 21: บทที่  8  ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต  และเซล

21

แบบฝ3กห�ดท�� 8.1

• สำร�าง Procedure เม*อเร)ยก็ใช�งาน่ให�พั�มพั&เคืร*องหมาย = ตั�,งแตั เซล B2 จำน่ถึ+ง B100 ใน่เว�ร&ก็ช)ตัช*อ sheet2• สำร�าง Procedure เม*อเร)ยก็ใช�งาน่ให�

พั�มพั&เคืร*องหมาย *** ตั�,งแตั เซล C3 จำน่ถึ+ง C100 ใน่เว�ร&ก็ช)ตัที่)*ใช�งาน่อย�