04 มิถุนายน 2557

Excel VBA - 1. เริ่มต้นเขียน VBA กัน

หรับผู้ที่ใช้ Excel 2007, 2010 หรือ รุ่นที่ใหม่กว่า ก่อนอื่นเราต้องกำหนดค่าเพื่อให้สามารถใช้ VBA และ Macro ก่อน โดยทำตามขั้นตอน ดังนี้

เปิดโปรแกรม Excel 2007, 2010 หรือ รุ่นที่ใหม่กว่า จากนั้น

1. เลือก เมนู File -> Options
2. ที่หน้าต่าง Excel Options ให้คลิกที่รายการ Customize Ribbon
3. ในส่วนของ กล่อง Main Tabs ให้ติ๊กเครื่องหมายถูกหน้ารายการ Develop จากนั้นคลิกปุ่ม OK 


















จากนั้นเมนูของ Excel ก็จะปรากฎรายการเมนู Developer เพิ่มขึ้นมา 

4. ให้คลิกที่เมนู Developer เลือก Macro Security
5. ที่หน้าต่าง Trust Center ให้เลือกรายการ Macro Setting
6. ในส่วนของ Macro Settings ให้เลือกรายการ 

       Enable all macros (not recommended; potentially dangerous code can run) 
 และ Trust access to the VBA project object model จากนั้น คลิกปุ่ม OK



เท่านี้โปรแกรม Excel ของเราก็สามารถใช้งาน VBA ได้แล้ว


เริ่มเขียนคำสั่ง VBA กัน

1. ที่ Excel ให้เลือกเมนู Developer 
2. จากนั้นคลิกเลือก ไอคอน Visual Basic จะปรากฎหน้าต่าง Microsoft Visual Basic for Application ขึ้นมา
3. ไปที่เมนู Insert เลือก รายการ Module 
4. ที่หน้าต่าง Module1(Code) ให้ทำการป้อนคำสั่ง ดังนี้

Sub mySub()
MsgBox ("Hello World")
End Sub

จากนั้นทำการบันทึก Excel Workbook 

เมื่อต้องการเรียกใช้งานให้คลิกปุ่ม F5 หรือไปที่เมนู Run เลือกรายการ Run Sub/UserForm

ก็จะปรากฎ Messagebox ขึ้นมาดังภาพ

*** เมื่อต้องการบันทึก workbook ของ Excel เวลาบันทึกให้กำหนดประเภทของไฟล์ เป็น Excel Macro-Enabled Workbook (*.xlsm)




















การเรียกใช้งาน subroutine อัตโนมัติ

สำหรับ subroutine ที่จะถูกเรียกใช้งานแบบอัตโนมัติ จะใช้ชื่อว่า Workbook_open ซึ่งจะถูกเรียกใช้งานโดยอัตโนมัติเมื่อเราทำการเปิดไฟล์ Workbook ของ Excel

วิธีการกำหนดสามารถทำได้ดังนี้

1. ทำการเพิ่ม Subroutine ใหม่ โดยใช้ชื่อว่า Workbook_Open ทำได้โดย ไปที่หน้าต่าง
Project - VBAProject แล้ว ดับเบิ้ลคลิกที่รายการ ThisWorkbook 


















จะเข้าสู่หน้าต่างเขียนคำสั่ง ให้เขียนคำสั่ง ดังนี้

Private Sub Workbook_Open()
mySub 'mySub คือชื่อ subroutine ที่เราสร้างขึ้นเอง
End Sub

ทำการ บันทึก (save) workbook แล้วปิด (close)

*** อย่าลืม --- การบันทึก workbook ให้กำหนดประเภทของไฟล์ เป็น Excel Macro-Enabled Workbook (*.xlsm)

จากนั้นเปิด workbook ใหม่อีกรอบ ก็จะมีการเรียกใช้งาน mySub ผ่านทาง subroutine Workbook_Open โดยอัตโนมัติ

สำหรับ Excel VBA ตอนแรก ก็ขอจบไว้เพียงเท่านี้ 

ช่วงนี้มี เป็นช่วง เคอร์ฟิว (curfew) คือ การห้ามออกจากเคหสถานเวลาค่ำคืน ตามที่รัฐกำหนด
ขอให้ทุกคนหลับฝันดี รวยๆ เจริญๆ

"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.