הפונקציה GetObject

חשוב: מאמר זה תורגם בתרגום מכונה, ראה כתב ויתור. תוכל למצוא את הגרסה באנגלית של המאמר כאן לעיונך.

הערה: הפונקציה, שיטת, אובייקט או מאפיין המתוארים בנושא זה אינה זמינה אם שירות Microsoft Jet ביטוי פועל במצב ארגז חול, המונעת להערכה של ביטויים העשויים להיות לא בטוחים. לקבלת מידע נוסף אודות מצב ארגז חול, חפש "מצב sandbox" בעזרה.

החזרת הפניה לאובייקט המסופק על-ידי רכיב ActiveX.

תחביר

GetObject ([שם הנתיב ] [, מחלקה ] )

תחביר הפונקציה GetObject כולל את הארגומנטים הבאים:

ארגומנט

תיאור

שם הנתיב

אופציונלי. משתנה (מחרוזת). הנתיב המלא ואת שם הקובץ המכיל את האובייקט כדי לאחזר. אם שם הנתיב מושמט, מחלקה נדרש.

מחלקה

אופציונלי. משתנה (מחרוזת). מחרוזת המייצגת את מחלקה של האובייקט.


תחביר appname. משתמשת המחלקהארגומנטobjecttype ומכיל את החלקים הבאים:

חלק

תיאור

appname

נדרש. משתנה (מחרוזת). שם היישום המספק את האובייקט.

objecttype

נדרש. משתנה (מחרוזת). הסוג או המחלקה של האובייקט כדי ליצור.


הערות

הערה: הדוגמאות הבאות מדגימות את השימוש של פונקציה זו במודול Visual Basic for Applications‏ (VBA). לקבלת מידע נוסף אודות עבודה עם VBA, בחר הפניית מפתח ברשימה הנפתחת שליד חיפוש והזן מונח אחד או יותר בתיבת החיפוש.

השתמש בפונקציה GetObject כדי להגיע לאובייקט ActiveX מקובץ ולהקצות האובייקט משתנה אובייקט. השתמש המשפט Set כדי להקצות את האובייקט המוחזר על-ידי GetObject למשתנה האובייקט. לדוגמה:

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

בעת ביצוע קוד זה, היישום המשויך שצוין שם הנתיב מופעל, והאובייקט בקובץ שצוין הופך לפעיל.

אם שם הנתיב הוא מחרוזת באורך אפס (""), הפונקציה GetObject מחזירה מופע אובייקט חדש מהסוג שצוין. אם הארגומנט שם הנתיב מושמט, הפונקציה GetObject מחזירה אובייקט פעיל כעת מהסוג שצוין. אם אין אובייקט מהסוג שצוין קיים, מתרחשת שגיאה.

יישומים מסוימים מאפשרים לך להפעיל חלק מקובץ. הוספת סימן קריאה (!) עד לסוף שם הקובץ ואחריו הוסף מחרוזת המזהה את החלק של הקובץ שברצונך להפעיל. לקבלת מידע אודות אופן היצירה של מחרוזת זו, עיין בתיעוד עבור היישום שיצר את האובייקט.

לדוגמה, ביישום של ציור ייתכן שכבות מרובות לציור המאוחסן בקובץ. באפשרותך להשתמש הקוד הבא כדי להפעיל שכבה בתוך ציור, המכונה SCHEMA.CAD:

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

אם לא תציין של האובייקט מחלקה, אוטומציה תקבע את היישום כדי להתחיל את האובייקט כדי להפעיל, בהתבסס על שם הקובץ שאתה מספק. עם זאת, קבצים מסוימים, עשויות לתמוך מחלקה יותר מרשומה אחת של האובייקט. לדוגמה, ציור עשוי לתמוך שלושה סוגים שונים של אובייקטים: אובייקט יישום , אובייקט ציור ואובייקט של סרגל הכלים , כל אחד מהם הן חלק של אותו קובץ. כדי לציין איזה אובייקט בקובץ ברצונך להפעיל, השתמש בארגומנט האופציונלי מחלקה . לדוגמה:

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 Sub מחפשת Excel ומזין אם היא פועלת, אותו בטבלה אובייקט פועל. השיחה הראשונה GetObject גורם לשגיאה אם עדיין אינו פועל Microsoft Excel. בדוגמה, השגיאה גורם הדגל ExcelWasNotRunning שיש להגדיר כ- True. הקריאה השניה GetObject מציינת קובץ כדי לפתוח. אם Excel אינו כבר מופעל, הקריאה השניה יפעיל אותו ומחזירה הפניה לגליון העבודה המיוצג על-ידי הקובץ שצוין, mytest.xls. הקובץ חייב קיים במיקום שצוין; אחרת, נוצרת השגיאה Visual Basic אוטומציה שגיאה. בשלב הבא, הקוד בדוגמה הופכת 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.

×