ฟังก์ชัน GetObject

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

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

ส่งกลับการอ้างอิงไปยังวัตถุโดยคอมโพเนนต์ ActiveX

ไวยากรณ์

GetObject ([ชื่อเส้นทาง] [คลาส] )

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

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

คำอธิบาย

ชื่อเส้นทาง

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

ชั้นเรียน

เพิ่มเติม ตัวแปร (สตริง) สตริแทนคลาส ของวัตถุ


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

ส่วน

คำอธิบาย

ชเดี่ยว

ต้องระบุ ตัวแปร (สตริง) ชื่อของแอปพลิเคชันให้วัตถุ

objecttype

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


ข้อสังเกต

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

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

Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

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

ถ้าชื่อเส้นทางเป็นสตริงข้อความยาวเป็นศูนย์ (""), GetObjectส่งกลับอินสแตนซ์ของวัตถุใหม่ของชนิดที่ระบุ ถ้าไม่ใส่สแตนซ์GetObjectส่งกลับวัตถุใช้งานอยู่ในปัจจุบันของชนิดที่ระบุ ถ้าไม่มีวัตถุของชนิดที่ระบุมีอยู่ เกิดข้อผิดพลาด

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

ตัวอย่างเช่น ในแอปพลิเคชันรูปวาดที่ คุณอาจมีหลายชั้นเพื่อจัดเก็บไว้ในไฟล์รูปวาด คุณสามารถใช้โค้ดต่อไปนี้เพื่อเปิดใช้งานชั้นภายในรูปวาดที่เรียกว่าSCHEMA.CAD:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

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

Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", _
"FIGMENT.DRAWING")

ในตัวอย่างFIGMENTคือชื่อของแอปพลิเคชันรูปวาดและDRAWINGหนึ่งวัตถุชนิดใดก็

เมื่อวัตถุถูกเปิดใช้งาน คุณอ้างอิงได้โดยใช้ตัวแปรวัตถุที่คุณกำหนดเอง ในตัวอย่างข้างต้น คุณเข้าถึงคุณสมบัติและวิธีของวัตถุใหม่ โดยใช้ตัวแปรของวัตถุMyObject ตัวอย่าง:

MyObject.Line 9, 90
MyObject.InsertText 9, 100, "Hello, world."
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

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

ถ้าวัตถุได้ลงทะเบียนเองก็เป็นวัตถุเดี่ยวสแตนซ์ อินสแตนซ์เดียวของวัตถุไว้ เพียงไม่กี่ครั้งCreateObjectจะดำเนินการ มีวัตถุอินสแตนซ์เดียวGetObjectเสมอส่งกลับอินสแตนซ์เดียวกันเมื่อเรียกว่า ด้วยสตริงที่มีความยาวเป็นศูนย์ ("") ไวยากรณ์ และทำให้เกิดข้อผิดพลาดถ้าสแตนซ์ถูกละไว้ คุณไม่สามารถใช้GetObjectเพื่อรับการอ้างอิงไปยังคลาสจะถูกสร้างขึ้น ด้วย Visual Basic

ตัวอย่าง

ตัวอย่างนี้ใช้ฟังก์ชันGetObjectเพื่อรับการอ้างอิงไปยังแผ่นงานที่เฉพาะเจาะจงMicrosoft Office Excel 2007 (MyXL) ใช้คุณสมบัติแอปพลิเคชันของแผ่นงานให้ Excel สามารถมองเห็น ได้ เพื่อปิด และอื่น ๆ ใช้สาย API สอง กระบวนงาน DetectExcelย่อยค้นหา Excel และถ้าทำ ป้อนในตารางวัตถุเรียกใช้ สายแรกไปยังGetObjectทำให้เกิดข้อผิดพลาดถ้า Microsoft Excel ไม่ทำงานอยู่แล้ว ในตัวอย่าง ข้อผิดพลาดทำให้ตั้งค่าสถานะ ExcelWasNotRunning เป็นถูกตั้งค่าเป็น True การโทรที่สองเพื่อGetObjectระบุไฟล์เพื่อเปิด ถ้า Excel ไม่ได้กำลังทำงาน การโทรที่สองจะเริ่มต้น และส่งกลับการอ้างอิงไปยังแผ่นงานที่แทน ด้วยไฟล์ที่ระบุ mytest.xls ไฟล์ต้องอยู่ในตำแหน่งที่ตั้งที่ระบุ ต้องสร้างข้อผิดพลาดของ Visual Basic Automation ข้อผิดพลาดมิฉะนั้น ถัดไป รหัสตัวอย่างทำให้ทั้ง Excel และหน้าต่างที่ประกอบด้วยการมองเห็นได้ของแผ่นงานที่ระบุ สุดท้าย ถ้ามีค่าไม่มีเวอร์ชันก่อนหน้าของ Excel ที่ใช้งาน รหัสใช้วิธีtQuiวัตถุแอปพลิเคชันเพื่อปิด Excel ถ้าแอปพลิเคชันได้ถูกใช้งาน ไม่พยายามที่จะปิดเอกสารนั้น การอ้างอิงเองจะพร้อมใช้งาน โดยการตั้งค่าเป็นไม่มีสิ่งใด

' Declare necessary API routines:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
ByVal wParam as Long, _
ByVal lParam As Long) As Long
Sub GetExcel()
Dim MyXL As Object ' Variable to hold reference
' to Microsoft Excel.
Dim ExcelWasNotRunning As Boolean ' Flag for final release.
' Test to see if there is a copy of Microsoft Excel already running.
On Error Resume Next ' Defer error trapping.
' GetObject function called without the first argument returns a
' reference to an instance of the application. If the application isn't
' running, an error occurs.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Clear Err object in case error occurred.
' Check for Microsoft Excel. If Microsoft Excel is running,
' enter it into the Running Object table.
DetectExcel
' Set the object variable to reference the file you want to see.
Set MyXL = GetObject("c:\vb4\MYTEST.XLS")
' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Do manipulations of your file here.
' ...
' If this copy of Microsoft Excel was not running when you
' started, close it using the Application property's Quit method.
' Note that when you try to quit Microsoft Excel, the
' title bar blinks and a message is displayed asking if you
' want to save any loaded files.
If ExcelWasNotRunning = True Then
MyXL.Application.Quit
End IF
Set MyXL = Nothing ' Release reference to the
' application and spreadsheet.
End Sub
Sub DetectExcel()
' Procedure dectects a running Excel and registers it.
Const WM_USER = 1024
Dim hWnd As Long
' If Excel is running this API call returns its handle.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then ' 0 means Excel not running.
Exit Sub
Else
' Excel is running so use the SendMessage API
' function to enter it in the Running Object Table.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub

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

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

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

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

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

×