วันพุธที่ 8 มิถุนายน พ.ศ. 2554

การใช้ excel : Reading and writing data from Cells in vba excel (1)

การใช้ excel ในบทความนี้จะกล่าวถึงการอ่านและการบันทึกข้อมูลลง Cells ใน worksheet ของไฟล์ excel โดยการเขียนโปรแกรมใน vba ตามที่ได้กล่าวถึงแนวคิดและหลักการ vba excel ไปแล้วในบทความก่อนๆ ซึ่งสิ่งหนึ่งที่ต้องนำเข้าไปดำเนินการภายในฟังก์ชันหรือมาโครก็คือ ข้อมูล(Data) จาก Cells และเมื่อฟังก์ชันหรือมาโครดำเนินการเสร็จแล้วอาจจะต้องแสดงผลให้ผู้ใช้ได้ทราบผ่าน Cells ใน worksheet วิธีการอ้างถึง worksheet และ การอ้างถึง workbook ผมได้นำเสนอไปแล้วในบทความที่ผ่านมาเช่นกัน หากมองโคงสร้างข้อมูลใน excel file เราจะพบว่า Cells เป็นระดับข้อมูลที่อยู่ต่ำสุด เมื่อนำทุกๆ Cells มารวมกันก็จะเกิดเป็น Worksheets และ Worksheets หลายๆแผ่นมารวมกันก็จะกลายเป็น Workbook (Excel file) การเข้าถึงข้อมูลใน Cells ใช้ฟังก์ชันใน vba ได้สองฟังก์ชันคือ

  1. Range(Cellsname)
  2. Cells(Rowindex,Columnindex)

การใช้ฟังก์ชัน Range

ผู้ใช้จะต้องผ่านชื่อของเซลล์ที่ต้องการอ่านหรือบันทึก (ชื่อของเซลล์ เช่น A1 E15 เป็นต้น) ตัวอย่างเช่น ต้องการเข้าไปจัดการข้อมูลในเซลล์ A1 เราสามารถเขียนโค้ดใน vba ได้ดังนี้

Range(“A1”).Activate

ActiveCell.Value = 15

‘เป็นการกำหนดให้เซลล์ A1 มีค่าเท่ากับ 15

a = ActiveCell.Value

‘เป็นการอ่านข้อมูลในเซลล์ A1 และนำมาเก็บไว้ที่ตัวแปร a

บางครั้งเราใช้ฟังก์ชัน Range ในการกำหนดคุณสมบัติของเซลล์นั้นๆได้ เช่น

Range(“A1:A10”).Activate

ActiveCell.Font.Bold = True

‘เป็นการกำหนดให้เซล์ A1 – A10 มีคุณสมบัติของ Font เป็นตัวหนา

การใช้ฟังก์ชัน Cells

ฟังก์ชันนี้ใช้ง่ายเลยครับเหมาะสำหรับการเขียนมาโครเพื่อทำงานมาก ตามรูปแบบของฟังก์ชันเราจะอ้างถึงเซลล์ด้วยหมายเลขแถวและหมายเลขหลักครับ ในการใช้ excel เราจะพบว่า excel จะกำหนดตำแหน่งของหลักด้วยตัวอักษรครับ โดยเรียงลำดับไปเรื่อยๆตั้งแต่ A ซึ่งจะหมายถึงหลักที่ 1 ในขณะที่แถวจะใช้ตัวเลขในการกำหนดตำแหน่ง ดังนั้นหากเรากล่าวถึงเซลล์ B3 จะหมายถึงเซลล์ในหลักที่ 2 แถวที่ 3 ซึ่งหากใช้ฟังก์ชัน Cells ก็สามารถเขียนได้ดังนี้

Cells(3,2) ‘ หมายถึง B3

มาดูการใช้งานกันครับ

การกำหนดข้อมูลลงในเซลล์ B3 ให้เท่ากับ 15

Cells(3,2) = 15

การอ่านข้อมูลในเซลล์ B3 และนำมาเก็บไว้ในตัวแปร a

a = Cell(3,2)

จะเห็นว่าฟังก์ชัน Cells ดูไปดูมามันก็คืออาเรย์นั่นเองครับ พอเป็นอาเรย์ก็ง่ายขึ้นเยอะครับในการจัดการเพราะเราจะอ้างถึงมันด้วย Index นั่นเอง เอาหล่ะครับมาถึงตอนนี้เราก็สามารถเข้าไปถึงข้อมูลในระดับต่ำสุดของ excel แล้วนะครับ เดี๋ยวบทความต่อไปผมจะนำเสนอการเขียนมาโครเพื่อเข้าไปจัดการข้อมูลต่างๆในแต่ละเซลล์โดยอาศัยคำสั่งควบคุมของ vba ก็พวก for next ,do while ทำนองนั้นหล่ะครับ ซึ่งจะทำให้มาโครของเรามีประสิทธิภาพสูง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Yahoo bot last visit powered by  Ybotvisit.com