Professional Documents
Culture Documents
ExcelVB6 by Amnatn (Preview)
ExcelVB6 by Amnatn (Preview)
อำนำจ นุตะมำน
THAIVBA.NET
พัฒนาแอปพลิเคชันด้ วย VB6 กับ Excel
สารบัญ
บทนา ..................................................................................................................................................................................... 10
บทที่ 1 พืน้ ฐานเอ็กเซลสาหรับโปรแกรมเมอร์ ..................................................................................................................................... 11
ข้อแตกต่างระหว่าง VB กับ VBA ............................................................................................................................................ 11
คลาสออบเจ็กต์ของเอ็กเซล (EXCEL OBJECT CLASS) ................................................................................................................ 11
คอนโทรลของเอ็กเซล (EXCEL OBJECT CONTROL) ................................................................................................................. 13
ออบเจ็กต์ไลบรารี ของเอ็กเซล (EXCEL OBJECT LIBRARY) .......................................................................................................... 14
ออบเจ็กต์เบราเซอร์ กบั เอ็กเซล (OBJECT BROWSER) ................................................................................................................... 14
ค่าคงที่ของเอ็กเซล (EXCEL CONSTANTS) ............................................................................................................................... 15
โครงสร้างออบเจ็กต์ของเอ็กเซล (EXCEL OBJECT MODEL) ......................................................................................................... 17
แอปพลิเคชัน (Application) ............................................................................................................................................. 18
เวิร์กบุ๊ค (Workbook) ..................................................................................................................................................... 19
เวิร์กชี ต (Worksheet) ..................................................................................................................................................... 21
พิ สัย (Range) ............................................................................................................................................................... 22
เอ็กเซลแมโคร (EXCEL MACRO) ........................................................................................................................................... 23
การแก้ไขโปรเจ็กต์ VBA ของเอ็กเซลด้วย VB .............................................................................................................................. 23
บทที่ 2 หลักเบือ้ งต้ นในการเขียนโปรแกรมกับเอ็กเซล ............................................................................................................................ 27
HELLO WORLD! .............................................................................................................................................................. 27
EARLY กับ LATE BINDING ................................................................................................................................................ 28
วิธีตรวจสอบเวอร์ ชนั ของเอ็กเซล ................................................................................................................................................ 29
ค่าคงที่ของเอ็กเซล (BUIT-IN CONSTANTS) ............................................................................................................................. 29
สร้ างฟอร์ มแสดงค่ าคงที่ ของเอ็กเซลด้ วย Listview .................................................................................................................... 30
ความหมายของ EXCEL.APPLICATION ................................................................................................................................... 32
ทาความเข้ าใจเรื่ อง Excel Instance .................................................................................................................................... 33
Quit กับ Set Nothing ................................................................................................................................................... 36
วิธีตรวจสอบว่ า เอ็กเซลรั นอยู่หรื อไม่ ...................................................................................................................................... 37
แสดงเวิร์กบุ๊คในเอ็กเซลด้ วย TreeView Control ................................................................................................................... 37
การเปิ ดใช้งานเวิร์กบุ๊คของเอ็กเซล .............................................................................................................................................. 39
วิธีตรวจสอบว่ า มีไฟล์ เวิร์กบุ๊คอยู่ในเครื่ องหรื อไม่ ....................................................................................................................... 39
วิธีตรวจสอบว่ า เวิร์กบุ๊คถูกเปิ ดใช้ งานอยู่หรื อไม่ ......................................................................................................................... 40
การเรี ยกใช้งานสู ตรฟั งก์ชนั ของเอ็กเซล ........................................................................................................................................ 40
การเรี ยกใช้งานแมโครของเอ็กเซล .............................................................................................................................................. 41
การเรี ยกใช้ฟังก์ชนั ADD-IN ของเอ็กเซล ..................................................................................................................................... 42
OLE CONTROL กับเอ็กเซล.................................................................................................................................................. 43
MSFLEXGRID กับเอ็กเซล ................................................................................................................................................... 46
การเรี ยกใช้งานเวิร์กชีตและเซลล์ ................................................................................................................................................ 51
สร้างฟอร์ มควบคุม WORKSHEET และ RANGE ......................................................................................................................... 53
สร้างฟอร์ มป้ อนข้อมูลใส่ เวิร์กชีตของเอ็กเซล.................................................................................................................................. 54
เข้าใจเรื่ องคลาสของชีตในเอ็กเซล (EXCEL.SHEET)...................................................................................................................... 56
บทนา
จะเห็ นรู ปไอคอนของ Sheet และ Chart ในทูลบ็อกซ์ของวิชวลเบสิ ก หลังจากนั้นสามาร่วางคอนโทรลใส่ ในฟอร์ มได้
โดยตรง สาหรับวิธีติดต่อเอ็กเซลโดยใช้คอนโทรล OLE นั้นให้ดูตวั อย่างในบท่ัดไป
ตัวอย่ าง แสดงตารางข้อมูลและกราฟในฟอร์มจากคอนโทรลของเอ็กเซล
1. สร้างฟอร์มใหม่ในโปรเจ็กต์วชิ วลเบสิ ก
2. ใส่คอนโทรล Sheet และ Chart จากทูลบ็อกซ์ลงในฟอร์ม
3. เขียนโปรแกรมคาสัง่ ต่างๆ ในฟอร์ม ดังนี้
Private Sub Form_Load()
With Sheet1.object.ActiveSheet
.Range("A1") = 1
.Range("A2") = 2
.Range("A3").Formula = "=A1+A2"
End With
With Chart1.object
With .WorkSheets(1)
.Range("A1:B1") = Array("QTR", "AMT")
.Range("A2:B2") = Array(1, 15)
.Range("A3:B3") = Array(2, 20)
.Range("A4:B4") = Array(3, 18)
.Range("A5:B5") = Array(4, 23)
End With
With .ActiveChart
.SetSourceData .Parent.WorkSheets(1).Range("B2:B5")
.PlotBy = 2
.ChartType = 5
End With
End With
End Sub
จากตั ว อย่ า งข้า งต้ น ให้ สั ง เกตว่ า Sheet1.object และ Chart1.object คื อ ออบเจ็ ก ต์ เวิ ร์ ก บุ๊ ค (Workbook) เพราะว่ า
คอนโทรล Sheet1 และ Chart1 สร้างมาจากคลาส Excel.Sheet และ Excel.Chart ตามลาดับนัน่ เอง
วิธีการข้างต้นเรี ยกว่า Early Binding โดยวิชวลเบสิ กจะผูก PEM (Property, Event, Method) กับออบเจ็กต์ของเอ็กเซล
ในขณะออกแบบโปรเจ็กต์ (Design Time) วิธีดงั กล่าวนี้ จะทาให้สามาร่เขียนคาสั่งควบคุมเหตุการณ์ของออบเจ็กต์ในเอ็กเซลได้
สาหรับรายละเอียดเรื่ องนี้ผเู ้ ขียนจะอธิบายเพิ่มเติมในบท่ัดไป
i = 1
With CreateObject("TLI.TypeLibInfo")
.ContainingFile = Application.Path & "\" & "Excel.exe"
For Each r In .Constants
Cells(i, 1) = r.Name
For Each mbr In r.Members
Cells(i, 2) = mbr.Name
Cells(i, 3) = mbr.Value
i = i + 1
Next mbr
Next r
End With
End Sub
3. กดปุ่ ม F5 ดูผลลัพธ์ในเวิร์กชีตของเอ็กเซล
หากต้องการเขี ยนโปรแกรมค าสั่งให้ ง่ายขึ้ น โดยการพิ ม พ์ . แสดง Property และ Method ของออบเจ็ กต์ Typelib ให้ ระบุ
References ในโปรเจ็กต์ ดังนี้
- หรื อ -
oTLI.ContainingFile = "Excel.exe"
For Each r In oTLI.Constants
...
ส าหรั บ โครงสร้ า งออบเจ็ ก ต์ ข องเอ็ ก เซลขั้น พื้ น ฐานที่ ค วรต้อ งเริ่ ม ต้น ศึ ก ษาและใช้ง านให้ ค ล่ อ งจะประกอบด้ว ย
Application, Workbook, Worksheet และ Range ดังนี้