הפונקציה CreateObject

חל על
Access של Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

הערה

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

יצירה והחזרה של הפניה לאובייקט ActiveX.

תחביר

CreateObject(class [, servername] )

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

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

    

ארגומנט המחלקהמשתמש בתחביר 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 הפסוקית יוצרת משתנה שיכול להכיל הפניה לכל סוג של אובייקט. עם זאת, הגישה לאובייקט דרך המשתנה הזה היא מוגבלת מאוחרת; כלומר, האיגוד מתרחש כאשר התוכנית מופעלת. כדי ליצור משתנה אובייקט שמביא לאיגוד מוקדם, כלומר איגוד בעת הידור התוכנית, הצהר על משתנה האובייקט עם מזהה מחלקה ספציפי. לדוגמה, באפשרותך להצהיר וליצור את ההפניות הבאות של 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.Application:

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

באפשרותך ליצור אובייקט במחשב מרוחק ברשת על-ידי העברת שם המחשב לארגומנט שם-שרת של CreateObject. שם זה זהה לחלק 'שם מחשב' של שם שיתוף: עבור מיקום משותף בשם "\\MyServer\Public", שם שרת הוא "MyServer".

הערה

עיין בתיעוד של COM (ראה Microsoft Developer Network) לקבלת מידע נוסף על הפיכת יישום לגלוי במחשב מרוחק ברשת. ייתכן שיהיה עליך להוסיף מפתח רישום עבור היישום שלך.

הקוד הבא מחזיר את מספר הגירסה של מופע של 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.