CreateObject 함수

적용 대상
Microsoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

참고

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.