참고
Microsoft Jet Expression Service가 샌드박스 모드에서 실행되는 경우 이 항목에 설명된 함수, 메서드, 개체 또는 속성을 사용할 수 없으므로 잠재적으로 안전하지 않은 식을 평가할 수 없습니다. 샌드박스 모드에 대한 자세한 내용은 도움말에서 "샌드박스 모드"를 검색하세요.
ActiveX 개체에 대한 참조를 만들고 반환합니다.
구문
CreateObject(class [, servername] )
CreateObject 함수 구문에는 다음과 같은 인수가 있습니다.
| 인수 | 설명 |
|---|---|
| 클래스 | 필수 요소입니다. 변형 (문자열). 만들 개체의 응용 프로그램 이름과 클래스입니다. |
| 서버 이름 | 선택 요소입니다. 변형 (문자열). 개체를 만들 네트워크 서버의 이름입니다. servername이 빈 문자열("")이면 로컬 컴퓨터가 사용됩니다. |
class인수는 appname.objecttype 구문을 사용하며 다음 부분으로 구성됩니다.
| 구성 요소 | 설명 |
|---|---|
| AppName | 필수 요소입니다. 변형 (문자열). 개체를 제공하는 응용 프로그램의 이름입니다. |
| 개체 유형 | 필수 요소입니다. 변형 (문자열). 만들 개체의 형식 또는 클래스입니다. |
주의
자동화를 지원하는 모든 애플리케이션은 하나 이상의 개체 유형을 제공합니다. 예를 들어 워드 프로세싱 응용 프로그램은 응용 프로그램 개체, 문서 개체 및 도구 모음 개체를 제공할 수 있습니다.
ActiveX 개체를 만들려면 CreateObject 에서 반환된 개체를 개체 변수에 할당합니다.
참고
VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. 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")
이 예제에서는 Access 데이터베이스 내에서 Excel 스프레드시트 개체를 자동화합니다. 이 코드는 개체(이 경우 Microsoft Excel 스프레드시트)를 만드는 애플리케이션을 시작합니다. 개체가 만들어지면 정의한 개체 변수를 사용하여 코드에서 개체를 참조합니다. 다음 예제에서는 개체 변수와 ExcelSheet개체 및 컬렉션을 포함한 Application 다른 Excel 개체를 사용하여 새 개체의 속성과 메서드에 액세스합니다 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 사용하여 개체 변수를 선언하면 모든 유형의 개체에 대한 참조를 포함할 수 있는 변수가 만들어집니다. 그러나 해당 변수를 통한 개체에 대한 액세스는 늦게 바인딩됩니다. 즉, 바인딩은 프로그램이 실행될 때 발생합니다. 조기 바인딩(즉, 프로그램이 컴파일될 때 바인딩)이 발생하는 개체 변수를 만들려면 특정 클래스 ID를 사용하여 개체 변수를 선언합니다. 예를 들어 다음과 같은 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의 servername 인수에 전달하여 원격 네트워크 컴퓨터에서 개체를 만들 수 있습니다. 이 이름은 공유 이름의 컴퓨터 이름 부분과 동일합니다. 이름이 "\\MyServer\Public"인 공유의 경우 서버 이름 은 "MyServer"입니다.
참고
원격 네트워크 컴퓨터에서 응용 프로그램을 표시하는 방법에 대한 자세한 내용은 COM 설명서( Microsoft Developer Network 참조)를 참조하세요. 애플리케이션의 레지스트리 키를 추가해야 할 수 있습니다.
다음 코드는 다음 원격 컴퓨터에서 실행되는 Excel instance의 버전 번호를 반환합니다.MyServer
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version
원격 서버가 존재하지 않거나 사용할 수 없는 경우 런타임 오류가 발생합니다.
참고
개체의 현재 instance가 없으면 CreateObject를 사용합니다. 개체의 instance가 이미 실행 중인 경우 새 instance가 시작되고 지정된 유형의 개체가 생성됩니다. 현재 instance를 사용하거나 애플리케이션을 시작하고 파일을 로드하도록 하려면 GetObject 함수를 사용합니다.
개체가 자신을 single-instance object로 등록한 경우 CreateObject가 실행되는 횟수에 관계없이 개체의 instance는 하나만 만들어집니다.
예제
이 예제에서는 CreateObject 함수를 사용하여 참조(
xlApp
)를 Excel로 보냅니다. 이 속성은 참조를 사용하여 Excel의 Visible 속성에 액세스한 다음 Excel Quit 메서드를 사용하여 속성을 닫습니다. 마지막으로, 참조 자체가 해제됩니다.
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.