Office

ฟังก์ชัน CreateObject

หมายเหตุ: เราต้องการมอบเนื้อหาวิธีใช้ปัจจุบันในภาษาของคุณให้กับคุณโดยเร็วที่สุดเท่าที่เราจะทำได้ หน้านี้ได้รับการแปลด้วยระบบอัตโนมัติ และอาจมีข้อผิดพลาดทางไวยากรณ์หรือความไม่ถูกต้อง จุดประสงค์ของเราคือเพื่อให้เนื้อหานี้มีประโยชน์กับคุณ คุณแจ้งให้เราทราบว่าข้อมูลดังกล่าวมีประโยชน์ต่อคุณที่ด้านล่างของหน้านี้ได้หรือไม่ นี่คือบทความภาษาอังกฤษเพื่อให้ง่ายต่อการอ้างอิง

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

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

ไวยากรณ์

CreateObject ( class [, servername] )

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

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

คำอธิบาย

คลาส

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

servername

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


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

ส่วน

คำอธิบาย

appname

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

objecttype

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


ข้อสังเกต

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

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

หมายเหตุ: ตัวอย่างที่ทำตามสาธิตการใช้ฟังก์ชันนี้ในโมดูลของแอปพลิเคชัน Visual Basic for Applications (VBA) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับ VBA ให้เลือกการอ้างอิงนักพัฒนาในรายการดรอปดาวน์ที่อยู่ถัดจากค้นหาและใส่เงื่อนไขอย่างน้อยหนึ่งข้อในกล่องค้นหา

' 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:

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

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

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

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

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

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

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

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

ตัวอย่าง

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

xlApp

) ไปยัง Excel ใช้การอ้างอิงเพื่อเข้าถึงคุณสมบัติที่มองเห็นได้ของ 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 ของเรา

×