Online Reference |
Microsoft Reference |
|
|
GetObject FunctionVBA Function, ส่งออกค่าเป็นการอ้างอิงอ๊อบเจค ActiveX จากไฟล์ไวยากรณ์
อากิวเมนต์ของฟังก์ชัน GetObject มีรายละเอียด คือ
อากิวเมนต์ class ใช้ไวยากรณ์ appname.objectivetype มีรายละเอียดของส่วน คือ
ลักษณะการประยุกต์ฟังก์ชัน GetObject สามารถเข้าถึงอ๊อบเจค ActiveX จากไฟล์และกำหนดอ๊อบเจคให้กับตัวแปรอ๊อบเจค โดยใช้คำสั่ง Set statement ในการกำหนดอ๊อบเจคที่ส่งค่าออกโดยฟังก์ชัน GetObject ให้กับตัวแปรอ๊อบเจค เช่น Dim CADObject As Object เมื่อคำสั่งได้รับการประมวลผล การประยุกต์ที่เกี่ยวข้องจากการระบุ pathname จะเริ่มขึ้นและอ๊อบเจคในไฟล์ที่ระบุจะทำงาน ถ้า pathname เป็น zero-length string () ฟังก์ชัน GetObject จะส่งออกค่าอ๊อบเจคใหม่ตามประเภทที่ระบุ ถ้าไม่กำหนด pathname ฟังก์ชัน GetObject จะส่งออกเป็นอ๊อบเจคปัจจุบันตามประเภทที่ระบุ ถ้าไม่มีอ๊อบเจคตามประเภทที่ระบุจะเกิดความผิดพลาด โปรแกรมประยุกต์บางโปรแกรมยิมยอมให้ทำงานกับบางส่วนของไฟล์ โดยการเพิ่มเครื่องหมายตกใจ (!) ต่อท้ายชื่อไฟล์และตามด้วยข้อความที่บอกส่วนของไฟล์ที่ต้องการ เช่น โปรแกรมเขียนแบบประเภทหลายชั้นที่เก็บในไฟล์ สมมติไฟล์ชื่อ SCHEMA.CAD Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3") ถ้าไม่มีการระบุ class ของอ๊อบเจค การค้นหาและการทำงานกับโปรแกรมประยุกต์จะเริ่มต้นโดยอัตโนมัติ ตามชื่อไฟล์ที่กำหนดให้ ไฟล์บางไฟล์มีหลาย class ซึ่งจะต้องกำหนดอากิวเมนต์ class Dim MyObject As Object FIGNENT เป็นชื่อของโปรแกรมประยุกต์ และ DRAWING เป็นชื่อประเภทอ๊อบเจคที่สนับสนุน ถ้าเรียกอ๊อบเจคมาแล้ว การอ้างอิงในคำสั่งสามารถใช้ตัวแปรอ๊อบเจค เช่น ใช้คุณสมบัติและเมธอด กับตัวแปรอ๊อบเจคชื่อ MyObject MyObject.Line 9, 90 ดูเพิ่มเติมฟังก์ชัน CreateObject, Set Statement ตัวอย่างตัวอย่างการใช้ฟังก์ชัน GetObject เพื่ออ้างอิงเวิร์กชีตของ Microsoft Excel (MyXL) โดยใช้คุณสมบัติ Application ในการทำให้มองเห็น Microsoft Excel ปิดไฟล์ และอื่นๆ ให้ใช้การเรียกด้วย API calls คือ DetectExcel Sub procedure ในการมองหา Microsoft Excel และถ้าไฟล์ที่ระบุทำงานให้เข้าไปที่ Running Object Table ในการเรียกครั้งแรกถ้า Microsoft Excel ยังไม่ทำงานฟังก์ชัน GetObject จะเกิดความผิดพลาด ตามตัวอย่างความผิดพลาดจะทำให้ ExcelWasNotRunning flag ได้รับตั้งค่าเป็น True การเรียกครั้งที่สองฟังก์ชัน GetObject จะระบุไฟล์ที่ต้องการเปิด ถ้า Microsoft Excel ยังไม่ทำงานฟังก์ชัน GetObject จะทำการเริ่มต้นและส่งค่าอ้างอิงไปที่เวิร์กชีตที่แสดงด้วยการระบุชื่อไฟล์ ตามตัวอย่าง ไฟล์ชื่อ Mytest.txt ต้องมีจริงตามตำแหน่งที่ระบุ ถ้าเป็นอย่างอื่น Visual Basic จะแสดงค่าความผิดพลาด Automation error คำสั่งต่อไปเป็นการทำให้มองเห็น Microsoft Excel และ window ที่มีเวิร์กชีตที่ระบุ ตอนสุดท้ายถ้าไม่มี Microsoft Excel เวอร์ชันก่อนทำงาน คำสั่งใช้เมธอด Quit ของการประยุกต์ปิด Microsoft Excel ถ้าโปรแกรมประยุกต์ยังคงทำงาน การอ้างอิงจะทำการปล่อยโดยตั้งค่าเป็น Nothing ' ประกาศ routines ของ API Declare Function SendMessage Lib "user32" Alias "SendMessageA"
_ Sub GetExcel() Dim MyXL As Object ' ตัวแปรอ๊อบเจคที่เก็บการอ้างอิง Microsoft
Excel ' ฟังก์ชัน Getobject เรียกโดยไม่มีอากิวเมนต์แรกเพื่อส่งการอ้างอิงของการประยุกต์ Set MyXL = Getobject(, "Excel.Application") If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' กำจัดอ๊อบเจคที่ผิดพลาดกรณี เกิดความผิดพลาด ' กำหนดตัวแปรอ๊อบเจค ' แสดง Microsoft Excel ตลอดจนถึงคุณสมบัติ Application ' ให้ทำการควบคุมไฟล์ ' ... ' ถ้าไฟล์ Microsoft Excel ที่เรียกไม่ได้ทำงานเมื่อเริ่มต้น
ให้ปิดเมธอด Quit ที่คุณสมบัติ Application If ExcelWasNotRunning = True Then Set MyXL = Nothing ' ปล่อยการอ้างอิงจาก application และ spreadsheet. End Sub Sub DetectExcel() ' Procedure ค้นหา Excel ที่ทำงาน และทำการ registers If hWnd = 0 Then ' 0 มีความหมาย Excel ไม่ทำงาน End Sub
|
||||||||||||||||