ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้

ฟังก์ชัน CreateObject

หมายเหตุ: ฟังก์ชัน วิธีการ วัตถุ หรือคุณสมบัติที่อธิบายไว้ในหัวข้อนี้จะถูกปิดใช้งานถ้า Microsoft Jet Expression Service เรียกใช้ในโหมด Sandbox ซึ่งป้องกันการประเมินนิพจน์ที่อาจไม่ปลอดภัย ดูข้อมูลเพิ่มเติมเกี่ยวกับโหมด Sandbox ค้นหา "โหมด Sandbox" ในวิธีใช้

สร้างและส่งกลับการอ้างอิงไปยังวัตถุ ActiveX

ไวยากรณ์

CreateObject ( class [, servername] )

ไวยากรณ์ ของฟังก์ชัน CreateObject มีอาร์กิวเมนต์ดังนี้

อาร์กิวเมนต์

คำอธิบาย

คลาส

จำเป็น ตัวแปร(สตริง ) ชื่อแอปพลิเคชันและคลาสของวัตถุเพื่อสร้าง

servername

ไม่จำเป็น ตัวแปร(สตริง ) ชื่อของเซิร์ฟเวอร์เครือข่ายที่วัตถุจะถูกสร้างขึ้น ถ้า ชื่อ เซิร์ฟเวอร์เป็นสตริงว่าง ("") คอมพิวเตอร์ภายในเครื่องจะถูกใช้


คลาสอาร์กิวเมนต์ใช้ชื่อแอปไวยากรณ์objecttype และมีส่วนต่างๆ ดังนี้:

ส่วน

คำอธิบาย

appname

จำเป็น ตัวแปร(สตริง ) ชื่อของแอปพลิเคชันที่จัดหาวัตถุ

objecttype

จำเป็น ตัวแปร(สตริง ) ชนิดหรือ คลาส ของวัตถุที่จะสร้าง


ข้อสังเกต

ทุกแอปพลิเคชันที่สนับสนุน Automation จะมีวัตถุอย่างน้อยหนึ่งชนิด ตัวอย่างเช่น แอปพลิเคชันประมวลผลข้อความอาจมีวัตถุ แอปพลิเคชัน วัตถุ เอกสาร และ วัตถุ แถบเครื่องมือ

เมื่อต้องการสร้างวัตถุ ActiveX ให้กําหนดวัตถุที่ส่งกลับโดย CreateObject ให้กับ ตัวแปรวัตถุ:

หมายเหตุ: ตัวอย่างที่ตามมาจะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) For more information about working with VBA, select Developer Reference in the drop-down list next to Search and enter one or more terms in the search box.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

ในตัวอย่างนี้ เราจะใช้วัตถุสเปรดชีต Excel โดยอัตโนมัติจากภายในฐานข้อมูล Access โค้ดนี้จะเริ่มต้นการสร้างวัตถุแอปพลิเคชัน ในกรณีนี้ สเปรดชีต Microsoft Excel เมื่อวัตถุถูกสร้างขึ้น ให้คุณอ้างอิงวัตถุนั้นในโค้ดโดยใช้ตัวแปรวัตถุที่คุณกําหนด ในตัวอย่างต่อไปนี้ คุณจะเข้าถึงคุณสมบัติและวิธีการของวัตถุใหม่โดยใช้ตัวแปรวัตถุ ExcelSheetและวัตถุ Excel อื่นๆ รวมถึงวัตถุ Application และคอลเลกชัน Cells

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

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

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)

การอ้างอิงผ่านตัวแปรที่ถูกผูกไว้ก่อนเวลาสามารถให้ประสิทธิภาพที่ดีกว่า แต่สามารถมีการอ้างอิงไปยัง คลาส ที่ระบุไว้ใน การประกาศ เท่านั้น

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

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

คุณสามารถสร้างวัตถุบนคอมพิวเตอร์ระยะไกลบนเครือข่ายได้โดยการส่งผ่านชื่อของคอมพิวเตอร์ไปยังอาร์กิวเมนต์ชื่อเซิร์ฟเวอร์ของ CreateObject ชื่อนั้นเหมือนกับส่วนชื่อเครื่องของชื่อการแชร์: ส่วนที่แชร์ที่ชื่อ "\\MyServer\Public" ชื่อ เซิร์ฟเวอร์คือ "MyServer"

หมายเหตุ:  ดูเอกสารประกอบ COM ( ดู Microsoft Developer Network) เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการที่แอปพลิเคชันมองเห็นได้บนคอมพิวเตอร์ระบบเครือข่ายระยะไกล คุณอาจต้องเพิ่มรีจิสทรีคีย์ให้กับแอปพลิเคชันของคุณ

โค้ดต่อไปนี้ส่งกลับหมายเลขเวอร์ชันของอินสแตนซ์ของ Excel ที่เรียกใช้บนคอมพิวเตอร์ระยะไกลที่ชื่อ MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

ถ้าเซิร์ฟเวอร์ระยะไกลไม่มีอยู่หรือไม่พร้อมใช้งาน ข้อผิดพลาดขณะเรียกใช้จะเกิดขึ้น

หมายเหตุ:  ใช้ CreateObject เมื่อไม่มีอินสแตนซ์ปัจจุบันของวัตถุ ถ้าอินสแตนซ์ของวัตถุถูกเรียกใช้อยู่แล้ว อินสแตนซ์ใหม่จะถูกเริ่มต้น และวัตถุของชนิดที่ระบุจะถูกสร้างขึ้น เมื่อต้องการใช้อินสแตนซ์ปัจจุบัน หรือเริ่มแอปพลิเคชันและโหลดไฟล์ให้ใช้ฟังก์ชันGetObject

ถ้าวัตถุได้ลงทะเบียนตัวเองเป็นวัตถุอินสแตนซ์เดียว อินสแตนซ์เพียงหนึ่งอินสแตนซ์ของวัตถุจะถูกสร้างขึ้น ไม่ว่าจะมีการ เรียกใช้งาน CreateObject กี่ครั้งก็ตาม

ตัวอย่าง

ตัวอย่างนี้ใช้ฟังก์ชัน CreateObject เพื่อตั้งค่าการอ้างอิง (

xlApp

) ไปยัง Excel ใช้การอ้างอิงเพื่อเข้าถึง คุณสมบัติ Visible ของ Excel แล้วใช้วิธีการ ออกจาก Excel เพื่อปิด สุดท้าย การอ้างอิงจะถูกปล่อยออกมา

Dim xlApp As Object    ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
' You may have to set Visible property to True
' if you want to see the application.
xlApp.Visible = True
' Use xlApp to access Microsoft Excel's
' other objects.
xlApp.Quit ' When you finish, use the Quit method to close
Set xlApp = Nothing ' the application, then release the reference.

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×