Online Reference

Home

Microsoft Reference
Knowledge Developer Database Internet Resource Forum
VBA
Array Function
ดาวน์โหลดคู่มือ

CreateObject Function

VBA Function, ใช้ในการสร้างอ๊อบเจค และส่งออกค่าเป็นการอ้างอิงอ๊อบเจค ActiveX

ไวยากรณ์

CreateObject(class )

อากิวเมนต์ class ใช้ไวยากรณ์ appname.objectivetype มีรายละเอียดของส่วน คือ

อากิวเมนต์ รายละเอียด
appname บังคับ, เป็นประเภทข้อมูล Variant (String), เป็นชื่อโปรแกรมประยุกต์ที่ให้อ๊อบเจค
objectivetype บังคับ, เป็นประเภทข้อมูล Variant (String), เป็นประเภทหรือ class ของอ๊อบเจคที่ต้องการสร้าง

ลักษณะการประยุกต์

โปรแกรมประยุกต์ที่สนับสนุนระบบอัตโนมัติต้องให้อ๊อบเจคอย่างน้อย 1 ประเภท เช่น โปรแกรมประมวลผลคำจะให้อ๊อบเจค Application, อ๊อบเจค Document และอ๊อบเจค Toolbar การสร้างอ๊อบเจค ActiveX เป็นการกำหนดอ๊อบเจคที่ต้องส่งค่าออก โดยฟังก์ชัน CreateObject ให้เป็นตัวแปรอ๊อบเจค

' ประกาศตัวแปรอ๊อบเจคเก็บค่าการอ้างอิงอ๊อบเจค
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

ในชุดคำสั่งข้างบนเริ่มการประยุกต์ด้วยสร้างอ๊อบเจค ในกรณีนี้ คือ Microsoft Excel เมื่อมีการสร้างอ๊อบเจค การอ้างอิงถึงอ๊อบเจคเป็นการอ้างด้วยตัวแปรอ๊อบเจคที่กำหนดขึ้น ในส่วนตัวอย่างต่อไปเป็นการเข้าถึงคุณสมบัติ และเมธอดของการสร้างอ๊อบเจคใหม่ด้วยตัวแปรอ๊อบเจค (ExcelSheet) และอ๊อบเจค Microsoft Excel รวมถึงอ๊อบเจค Application และ Cells Collection

' ทำให้มองเห็นตัวแปร Excel ตลอดจนถึงอ๊อบเจค Application
ExcelSheet.Application.Visible = True

' เพิ่มข้อความในเซลล์แรกของเวิร์กชีต
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"

' บันทึกเวิร์กชีตไว้ที่ C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"

' ปิด Excel ด้วยเมธอด Quit ของอ๊อบเจค Application
ExcelSheet.Application.Quit

' ปล่อยตัวแปรอ๊อบเจค
Set ExcelSheet = Nothing

ประกาศตัวแปรอ๊อบเจคด้วย As Object เพราะเป็นการสร้างตัวแปร ที่สามารถเก็บการอ้างอิงเป็นอ๊อบเจคประเภทต่างๆ แต่การเข้าถึงอ๊อบเจคตลอดจนถึงตัวแปรเป็นขอบเขตมา เนื่องจากมีความเกี่ยวพันเมื่อเรียกใช้โปรแกรม ในการสร้างตัวแปรอ๊อบเจคที่เกิดจากผลลัพธ์ของในความเกี่ยวพันที่เกิดก่อน เมื่อโปรแกรมได้รับการคอมไพล์ การประกาศตัวแปรอ๊อบเจคนี้ทำได้โดยการระบุ class ID ให้ดูจากตัวอย่างแสดงการอ้างอิง

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

การอ้างอิงตัวแปรแบบ Early-bound สามารถให้ผลการทำงานที่ดีกว่า แต่จะทำได้เพียงเก็บการอ้างอิงถึงการระบุ class ในการประกาศ

การส่งผ่านอ๊อบเจคออกโดยฟังก์ชัน CreateObject ไปที่ฟังก์ชันที่คาดว่าเป็นอ๊อบเจคที่เป็นอากิวเมนต์ เช่น ตามคำสั่งที่สร้างและส่งผ่านการอ้างอิงไปที่อ๊อบเจค Excel.Application

Call MySub (CreateObject("Excel.Application"))

ดูเพิ่มเติม

ฟังก์ชัน GetObject, Set Statement

ตัวอย่าง

ตัวอย่างการใช้ฟังก์ชัน CreateObject เพื่อกำหนดค่าการอ้างอิง (xlApp)ให้ Microsoft Excel ซึ่งเป็นการใช้การอ้างอิงในการเข้าถึงคุณสมบัติ Visible ของ Microsoft Excel แล้วใช้เมธอด Quit ในการปิด

' ประกาศตัวแปรเก็บการอ้างอิง
Dim xlApp As Object
Set xlApp = CreateObject("excel.application")
' ตั้งค่าคุณสมบัติ Visible property เป็น True
xlApp.Visible = True

' ใช้ xlApp ในการเข้าถึง Microsoft Excel และอ๊อบเจคอื่นๆ
' เมื่อเสร็จใช้เมธอด Quit ในการปิด
xlApp.Quit
' ปล่อยโปรแกรมประยุกต์
Set xlApp = Nothing