GetObject 함수

참고: 사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서가 여기 있습니다.

참고: Microsoft Jet 식 서비스를 안전 하지 않은 식 평가 하면 sandbox 모드에서 실행 중인 경우 함수, 메서드, 개체 또는이 항목에 설명 된 속성 비활성화 됩니다. Sandbox 모드에 대 한 자세한 내용은 도움말에서 "sandbox 모드"에 대 한 검색 합니다.

ActiveX 구성 요소에 제공 되는 개체에 대 한 참조를 반환 합니다.

구문

GetObject ([경로 ] [, 클래스 ] )

GetObject 함수 구문에는 다음과 같은이 인수가 사용:

인수

설명

경로

선택 사항입니다. 변형 (문자열)입니다. 전체 경로 검색할 개체가 포함 된 파일의 이름입니다. 경로 생략 하면 클래스 이 필요 합니다.

클래스

선택 사항입니다. 변형 (문자열)입니다. 개체의 클래스 을 나타내는 문자열입니다.


클래스 인수. 구문 응용 프로그램 이름사용 개체 형식 에 다음과 같이이 구성 하 고 있습니다.

구성 요소

설명

응용 프로그램 이름

필수. 변형 (문자열)입니다. 개체를 제공 하는 응용 프로그램의 이름입니다.

개체 형식

필수. 변형 (문자열)입니다. 만들려는 형식 또는 개체의 클래스입니다.


주의

참고: VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. VBA 사용에 대해 자세히 알아보려면 검색 옆의 드롭다운 목록에서 개발자 참고를 선택하고 검색 상자에 검색어를 하나 이상 입력하세요.

GetObject 함수를 사용 하 여 파일에서 ActiveX 개체에 액세스 하 고 개체 개체 변수 를 할당 합니다. GetObject 개체 변수를 반환 하는 개체를 할당 하려면 Set 문을 사용 합니다. 예를 들어:

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

이 코드가 실행 될 때 지정 된 경로 와 연결 된 응용 프로그램을 시작 하 고 지정된 된 파일의 개체가 활성화 됩니다.

경로 길이가 0 인 문자열인 경우 ("")를 지정 된 형식의 새 개체 인스턴스를 반환 합니다. 경로 인수를 생략 하면 지정 된 형식의 현재 활성 개체를 반환 합니다. 지정 된 형식의 개체가 없는 경우 오류가 발생 합니다.

일부 응용 프로그램 파일의 일부를 활성화할 수 있습니다. 파일 이름의 끝에 느낌표 (!)를 추가 하 고 뒤 활성화할 파일의. 이 문자열을 만드는 방법에 대 한 개체를 만든 응용 프로그램 설명서를 참조 합니다.

예를 들어 그리기 응용 프로그램에서 파일에 저장 된 드로잉에 여러 개의 레이어 할 수도 있습니다. 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 항상 같은 인스턴스를 반환 길이가 0 인 문자열을 사용 하 여 호출 하는 경우 ("") 구문 및이 경로 인수를 생략 하면 오류가 발생 합니다. GetObject Visual Basic을 사용 하 여 만든 수업에 대 한 참조를 사용할 수 없습니다.

예제

이 예제에서는 특정 Microsoft Office Excel 2007 워크시트 (MyXL)에 대 한 참조를 GetObject 함수를 사용 합니다. 워크시트의 응용 프로그램 속성을 사용 하 여 표시 하 고 Excel을 확인 합니다. 두 개의 API 전화를 사용 하 여 DetectExcel Sub 프로시저 Excel을 찾아 실행 하는 경우 실행 개체 테이블에 입력 합니다. 첫 번째 통화 GetObject 를 Microsoft Excel 실행 중이지 않은 경우 오류가 발생 합니다. 예제에서는 오류 ExcelWasNotRunning 플래그를 True로 설정 하면 됩니다. 두 번째 통화 GetObject 를 열려는 파일을 지정 합니다. Excel 실행 중이지 않은 경우 두 번째 통화를 시작 하 고 지정된 된 파일을 나타내는 워크시트에 대 한 참조를 반환 합니다. mytest.xls 합니다. 파일이 지정된 된 위치에 있어야 합니다. 그렇지 않은 경우 Visual Basic 오류 자동화 오류 생성 됩니다. 다음으로, 예제 코드에서는 Excel 및 지정된 된 워크시트가 포함 하는 창입니다. 마지막으로, 없는 이전 버전의 Excel 실행 되었으면 코드 응용 프로그램 개체 Quit 방법을 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
Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×