Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

ไวยากรณ์

CreateObject ( class [, servername] )

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

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

คำอธิบาย

คลาส

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

ชื่อเซิร์ฟเวอร์

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

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

ส่วน

คำอธิบาย

ชื่อแอป

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

ชนิดวัตถุ

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

ข้อสังเกต

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

เมื่อต้องการสร้างวัตถุ 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 ObjectSet 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 จะสร้างตัวแปรที่สามารถมีการอ้างอิงไปยังวัตถุชนิดใดก็ได้ อย่างไรก็ตาม การเข้าถึงวัตถุผ่านตัวแปรนั้นจะถูกผูกไว้ล่าช้า นั่นคือ การเข้าเล่มจะเกิดขึ้นเมื่อโปรแกรมของคุณรัน เมื่อต้องการสร้างตัวแปรออบเจ็กต์ที่ให้ผลลัพธ์ในการเข้าเล่มก่อนนั่นคือการผูกข้อมูลเมื่อโปรแกรมถูกคอมไพล์ ให้ประกาศตัวแปรออบเจ็กต์ที่มีรหัสคลาสเฉพาะ ตัวอย่างเช่น คุณสามารถประกาศและสร้างการอ้างอิง Excel ต่อไปนี้:

Dim xlApp As Excel.Application Dim xlBook As Excel.WorkbookDim xlSheet As Excel.WorkSheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet 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 ObjectSet xlApp = CreateObject("Excel.Application", "MyServer")Debug.Print xlApp.Version

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

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

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

ตัวอย่าง

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

xlApp

) ไปยัง Excel ซึ่งใช้การอ้างอิงเพื่อเข้าถึงคุณสมบัติ Visible ของ Excel แล้วใช้เมธอด Quit ของ 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.

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

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

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย