Lưu ý
Hàm, phương pháp, đối tượng hoặc thuộc tính được mô tả trong chủ đề này bị tắt nếu Dịch vụ Biểu thức Microsoft Jet đang chạy ở chế độ hộp cát, điều này ngăn chặn việc đánh giá các biểu thức không an toàn tiềm ẩn. Để biết thêm thông tin về chế độ hộp cát, hãy tìm kiếm "chế độ hộp cát" trong Trợ giúp.
Tạo và trả về tham chiếu tới đối tượng ActiveX.
Cú pháp
CreateObject(class [, servername] )
Cú pháp hàm CreateObject có các đối số sau:
| Đối số | Mô tả |
|---|---|
| lớp | Bắt buộc. Variant (Chuỗi). Tên ứng dụng và lớp của đối tượng cần tạo. |
| tên máy chủ | Không bắt buộc. Variant (Chuỗi). Tên của máy chủ mạng nơi đối tượng sẽ được tạo. Nếu tên máy chủ là chuỗi trống ("") thì máy tính cục bộ được sử dụng. |
Đối số lớpdùng cú pháp appname.objecttype và có các phần sau:
| Phần | Mô tả |
|---|---|
| tên ứng dụng | Bắt buộc. Variant (Chuỗi). Tên của ứng dụng cung cấp đối tượng. |
| kiểu đối tượng | Bắt buộc. Variant (Chuỗi). Loại hoặc lớp đối tượng cần tạo. |
Chú thích
Mỗi ứng dụng hỗ trợ tự động hóa đều cung cấp ít nhất một loại đối tượng. Ví dụ: một ứng dụng xử lý văn bản có thể cung cấp một đối tượng Application , một đối tượng Document và một đối tượng Toolbar .
Để tạo đối tượng ActiveX, hãy gán đối tượng do CreateObject trả về cho một biến đối tượng:
Lưu ý
Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.
' Declare an object variable to hold the object
' reference. Dim as Object causes late binding.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
Trong ví dụ này, chúng ta sẽ tự động hóa một đối tượng bảng tính Excel từ bên trong một cơ sở dữ liệu Access. Mã này sẽ bắt đầu ứng dụng tạo đối tượng, trong trường hợp này là bảng tính Microsoft Excel. Sau khi một đối tượng được tạo, bạn tham chiếu đối tượng đó trong mã bằng cách sử dụng biến đối tượng mà bạn đã xác định. Trong ví dụ sau đây, bạn truy nhập các thuộc tính và phương pháp của đối tượng mới bằng cách dùng biến đối ExcelSheettượng và các đối tượng Excel khác, bao gồm Application đối tượng và Cells tuyển tập.
' 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
Việc khai báo biến đối tượng bằng mệnh đề này As Object sẽ tạo ra một biến có thể chứa tham chiếu đến bất kỳ kiểu đối tượng nào. Tuy nhiên, việc truy nhập vào đối tượng thông qua biến đó sẽ bị ràng buộc muộn; Nghĩa là, gắn kết xảy ra khi chương trình của bạn được chạy. Để tạo biến đối tượng dẫn đến gắn kết sớm, nghĩa là gắn kết khi chương trình được biên dịch, khai báo biến đối tượng đó với một ID lớp cụ thể. Ví dụ: bạn có thể khai báo và tạo các tham chiếu Excel sau đây:
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)
Tham chiếu thông qua biến liên kết sớm có thể cho hiệu năng cao hơn nhưng chỉ có thể chứa tham chiếu đến lớp được chỉ định trong khai báo.
Bạn có thể chuyển một đối tượng do hàm CreateObject trả về cho một hàm mong đợi một đối tượng làm đối số. Ví dụ: mã sau đây tạo và truyền tham chiếu đến đối tượng Excel.Application:
Call MySub (CreateObject("Excel.Application"))
Bạn có thể tạo một đối tượng trên máy tính kết nối mạng từ xa bằng cách chuyển tên máy tính đến tham đối servername của CreateObject. Tên đó giống với phần Tên Máy của tên chia sẻ: đối với một chia sẻ có tên là "\\MyServer\Public", tên máy chủ là "MyServer".
Lưu ý
Tham khảo hướng dẫn sử dụng COM (xem Mạng lưới Nhà phát triển Microsoft) để biết thêm thông tin về cách làm cho ứng dụng hiển thị trên máy tính được kết nối mạng từ xa. Bạn có thể phải thêm khóa đăng ký cho ứng dụng của mình.
Mã sau trả về số phiên bản của phiên bản Excel đang chạy trên máy tính từ xa có tên là MyServer:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version
Nếu máy chủ từ xa không tồn tại hoặc không khả dụng, sẽ xảy ra lỗi thời gian chạy.
Lưu ý
Hãy dùng CreateObject khi không có thể hiện tại nào của đối tượng. Nếu một thực thể của đối tượng đang chạy, một phiên bản mới sẽ bắt đầu và một đối tượng thuộc loại được chỉ định sẽ được tạo. Để sử dụng phiên bản hiện tại hoặc để khởi động ứng dụng và yêu cầu ứng dụng tải tệp, hãy sử dụng hàm GetObject .
Nếu một đối tượng đã tự đăng ký là đối tượng bản thể hiện đơn, chỉ một bản thể hiện của đối tượng đó được tạo, bất kể CreateObject được thực thi bao nhiêu lần.
Ví dụ
Ví dụ này sử dụng hàm CreateObject để đặt tham chiếu (
xlApp
) vào Excel. Nó sử dụng tham chiếu để truy nhập vào thuộc tính Visible của Excel, rồi dùng phương pháp Thoát Excel để đóng nó. Cuối cùng, bản thân tham chiếu được giải phóng.
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.