210 likes | 402 Views
บทที่ 8 ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์ก ชีต และเซล. อ.รจนา วานนท์ Roseyayee.wordpress.com roseyayee@gmail.com Tel 089-7204020. ตัวแปร และชนิดข้อมูลใน VBA.
E N D
บทที่ 8 ตัวแปร ชนิดข้อมูลและการอ้างถึง เวิร์กชีต และเซล อ.รจนา วานนท์ Roseyayee.wordpress.com roseyayee@gmail.com Tel 089-7204020
ตัวแปร และชนิดข้อมูลใน VBA • ตัวแปร คือ หน่วยความจำสำหรับเก็บข้อมูลชนิดต่าง ๆ โดยใช้สัญลักษณ์เป็นตัวอักษรตามที่กำหนดขึ้น เช่น X,Y,Price,Sales,cost การเขียนโค๊ด VBA ใน Excel ต้องมีการส่งค่าไปยังเซลต่าง ๆ ในเวิร์กชีต หรือการนำค่าจากเซลในเวิร์กชีตมาคำนวณหรือประมวลผล วิธีการเก็บค่าจากเซลก่อนนำไปคำนวณหรือส่งไปยังเซล ควรจะพักเก็บในตัวแปร จะทำให้โค้ด VBA ที่สร้างขึ้นมีความยืดหยุ่นและสะดวกในการเรียกใช้งานมากขึ้น
หลักการตั้งชื่อตัวแปรหลักการตั้งชื่อตัวแปร • ต้องขึ้นต้นด้วยตัวอักษร หรือ Underscore(_) เท่านั้น • ตัวถัดไปจะเป็นตัวเลข ตัวอักษร หรือ Underscore ก็ได้ • ตัวอักษรพิมพ์เล็กพิมพ์ใหญ่ ไม่มีความแตกต่างกัน (Non-Case Sensitive) • ห้ามใช้คำสงวน (Reserved Word) • ชื่อต้องมีความยาวไม่เกิน 255 ตัวอักษร • ในการตั้งชื่อตัวแปรนั้นเราสามารถตั้งชื่ออะไรก็ได้ แต่ควรตั้งชื่อให้สื่อความหมายและสามารถบอกชนิดของตัวแปรนั้น ๆ เพื่อให้ง่ายต่อการแก้ไขและพัฒนาชุดคำสั่งในภายหลัง
การสร้างตัวแปรไว้ใช้งานการสร้างตัวแปรไว้ใช้งาน • รูปแบบการสร้างตัวแปรจะใช้คำว่า Dimชื่อตัวแปร Asชนิดข้อมูลของตัวแปร เปรียบเสมือนการแจ้งกับ Excel ให้รู้ก่อนใช้งานโค๊ด VBA ว่าได้สร้างตัวแปรขึ้นมาแล้ว ในภาษาคอมพิวเตอร์ทั่วไปนิยมเรียกการสร้างตัวแปรไว้ใช้งานว่า การประกาศตัวแปร มีรูปแบบดังนี้ รูปแบบ Dim ชื่อตัวแปร As ชนิดข้อมูลของตัวแปร
ตัวอย่างการสร้างตัวแปรสำหรับการใช้งาน VBA • Dim x As Integer ให้ตัวแปร x เก็บค่าข้อมูลประเภทตัวเลขจำนวนเต็ม • Dim price As Single ให้ตัวแปรชื่อ Price เก็บค่าข้อมูลประเภทตัวเลขทศนิยม • Dim complain As String ให้ตัวแปรชื่อ Complain เก็บค่าข้อมูลาประเภทตัวอักษร
พิมพ์โค๊ด VBA ตั้งชื่อว่า test_var ประกาศตัวแปร กำหนดค่าให้ตัวแปร แสดงข้อมูลในเซลจากค่าของตัวแปร
ตัวอย่างการใช้งานตัวดำเนินการตัวอย่างการใช้งานตัวดำเนินการ
การป้องกันการลืมด้วยการเขียน Comments ในโค้ด VBA • วิธีการเขียน comments ให้ใส่เครื่องหมาย’ ข้างหน้าcomments ที่เราต้องการ ตัวอักษรที่เขียนทั้งหมดจะเป็นสีเขียวหลังจากขึ้นบรรทัดใหม่ และโปรแกรมจะมองเห็นว่าส่วนนี้เป็น comments ไม่ใช่โค๊ด VBA ก็จะข้ามส่วนนี้ไป
การอ้างถึง เวิร์กชีต และเซล • วิธีอ้างถึงเวิร์กชีต By name • วิธีอ้างถึงเวิร์กชีต By Index รูปแบบ Worksheets(“sheet1”).Range(“a1”).Value =5 Worksheets(“Sales”).Range(“e1”).Value =3000 รูปแบบ Worksheets(1).Range(“a1”).Value =5 Worksheets(3).Range(“e3”).Value =“Customer list”
การอ้างถึง เวิร์กชีต และเซล • วิธีอ้างถึงเวิร์กชีตที่ถูกเรียกใช้งาน ไม่ต้องระบุชื่อเวิร์กชีต คำว่า ActiveSheetจะหมายถึงเวิร์กชีตที่ถูกเรียกใช้งานอยู่ รูปแบบ ActiveSheet.Range(“a1”).Value =5 ActiveSheet.Range(“e2”).Value =3000 ActiveSheet.Range(“c3”).Value =“Transportantion”
การอ้างถึง เวิร์กชีต และเซล (ต่อ) ชื่อของเซล • วิธีอ้างถึงเซล By name • วิธีอ้างถึงเซล By Index รูปแบบ Worksheets(“sheet1”).Range(“a5”).Value =5 Worksheets(“marketing”).Range(“ce100”).Value =“Budget” Worksheets(“sheet1”).Range(“f:g”).Value =“OK” ตำแหน่งคอลัมน์ ตำแหน่งแถว รูปแบบ Worksheets(“sheet1”).Cells(“5,1”).Value =25 Worksheets(“cost”).Cells(“225,2”).Value =350
การอ้างถึง เวิร์กชีต และเซล (ต่อ) • วิธีอ้างถึงเซล By Index • การอ้างอิงเซลที่ถูกเรียกใช้งาน รูปแบบการอ้างถึงเซลที่มากกว่า 1 เซล ด้วยวิธี by index Worksheets(“sheet1”).Range(Cells(1,1),Cells(3,5)).Value =4 Worksheets(“sheet1”).Range(Cells(2,3),Cells(10,8)).Value =“VBA” รูปแบบ ActiveCell.Value = 25 ActiveCell.Value = “Profit”
การอ้างถึง เวิร์กชีต และเซล (ต่อ) • วิธีอ้างถึงเซล By relative ตำแหน่งแถวเพิ่มจากเซล ที่ถูกเรียกใช้งานไป 2 แถว ตำแหน่งคอลัมน์เพิ่มจากคอลัมน์ของเซล ที่ถูกเรียกใช้งานไป 3 คอลัมน์ รูปแบบ ActiveCell.Offset(2,3).Value = 25 ActiveCell.Offset(-1,5).Value = 25 ActiveCell.Offset(-2,3).Value = 25
การอ้างถึง เวิร์กชีต และเซล (ต่อ) • วิธีอ้างถึงเซล By named ranges รูปแบบ Worksheets(“sheet1”).Range(“center”).Value = “Bangkok” Worksheets(“Finance”).Range(“interest rate”).Value = 0.0675 ชื่อของเซลที่ตั้งชื่อไว้ใน Excel
การคำนวณมูลค่าเงินฝากธนาคารการคำนวณมูลค่าเงินฝากธนาคาร • สร้าง Procedure คำนวณมูลค่าของเงินฝากธนาคาร โดยรับค่าจำนวนเงินฝาก อัตราดอกเบี้ย จำนวนปีที่ฝากจากเวิร์กชีต โดย Porcedureนี้ต้องสามารถสั่งใช้งานใน เวิร์กชีตใด ๆ ก็ได้ในไฟล์เดียวกัน
1 deposit_amout Single • 2. interest_rate Single • 3. period Integer • 4. future_amount Single ตัวแปร = ActiveSheet.Range(“a1”).Value Future_amount = deposit_amout * (1 + interest_rate) ^ Period ActiveSheet.Range(“a4”).Value = future_amount
แบบฝึกหัดที่ 8.1 • สร้าง Procedure เมื่อเรียกใช้งานให้พิมพ์เครื่องหมาย = ตั้งแต่เซล B2 จนถึง B100 ในเวิร์กชีตชื่อ sheet2 • สร้าง Procedureเมื่อเรียกใช้งานให้พิมพ์เครื่องหมาย *** ตั้งแต่เซล C3 จนถึง C100 ในเวิร์กชีตที่ใช้งานอยู่