차례:
비디오: Excel 2016 VBA Beginner Tutorial - Introduction to Macros & VBA 2024
VBA 절차에서 사용자에게 파일 이름을 요청해야하는 경우 는 InputBox 함수를 사용하고 Excel 사용자가 일부 입력을 수행 할 수 있습니다. 그러나 대부분의 사용자는 경로, 백 슬래시, 파일 이름 및 파일 확장명을 기억하기가 어렵 기 때문에 일반적으로 입력 상자가이 작업에 가장 적합한 도구는 아닙니다. 즉, 파일 이름을 입력 할 때 너무 쉽게 망가뜨릴 수 있습니다. 이 문제를 해결하려면 Application 객체의 GetOpenFilename 메소드를 사용하십시오. 그러면 코드가 전체 경로를 포함하여 유효한 파일 이름을 갖게됩니다. GetOpenFilename 메서드는 익숙한 열기 대화 상자 (파일 → 열기 → 찾아보기를 선택할 때 Excel 대화 상자가 표시되지 않음)를 표시합니다.
GetOpenFilename 메소드의 구문
GetOpenFilename 메소드의 공식 구문은 다음과 같습니다.
object. GetOpenFilename ([fileFilter], [filterIndex], [title], [buttonText], [multiSelect])
GetOpenFilename 메서드는 아래 옵션 인수를 사용합니다.인수
기능 FileFilter | 대화 상자 |
---|---|
에 나타나는 파일 유형을 결정합니다 (예: *.TXT). 선택할 사용자 | 에 대해 여러 필터를 지정할 수 있습니다.
FilterIndex 대화 상자에 표시 할 파일 필터를 |
기본값으로 결정합니다. | Title
대화 상자의 제목 |
막대에 대한 캡션을 지정합니다. | ButtonText
무시됨 (Macintosh 버전의 Excel에만 사용됨). |
MultiSelect | True이면 사용자가 여러 파일을 선택할 수 있습니다. |
GetOpenFilename 예제 |
모든 파일 (*. *), *. *
이 문자열은 쉼표로 구분 된 두 부분으로 구성됩니다 (
모든 파일 (*. *)
및
*). *
이 문자열의 첫 번째 부분은 파일 형식 드롭 다운 목록에 표시된 텍스트입니다. 두 번째 부분에서는 대화 상자에 표시 할 파일을 결정합니다. 예를 들어, *. *는
모든 파일을 의미합니다.
다음 코드의 코드는 사용자에게 파일 이름을 묻는 대화 상자를 엽니 다.이 절차에서는 5 개의 파일 필터를 정의합니다. VBA 줄 연속 시퀀스는 Filter 변수를 설정하는 데 사용됩니다. 그렇게하면이 복잡한 인수를 단순화하는 데 도움이됩니다. Sub GetImportFileName () 문자열로 희미한 Finfo 희미한 FilterIndex로 긴 희미한 제목으로 문자열 Dim FileName 변종으로 '파일 필터 목록 설정 FInfo = "텍스트 파일 (*.txt), *. txt, "& _"Lotus 파일 (*. prn), *. prn, "& _"쉼표로 구분 된 파일 (*.csv), *. csv, "& _"ASCII 파일 (*. asc), *. asc, "& _"모든 파일 (*. *), *. * " '표시 *. * 기본적으로 FilterIndex = 5 '대화 상자 캡션 설정 Title = "가져올 파일 선택"'파일 이름 가져 오기 FileName = Application. GetOpenFilename (FInfo, _ FilterIndex, Title) 'FileName = False이면 대화 상자에서 정보 반환 처리 Then MsgBox "파일이 선택되지 않았습니다. "Else MsgBox"선택한 경우 "& FileName End If End Sub
다음은이 절차를 수행 할 때 Excel이 표시하는 대화 상자입니다. 모양은 사용하는 Windows의 버전 및 설정 한 표시 옵션에 따라 달라질 수 있습니다.
GetOpen Filename 메서드는 사용자 정의 가능한 대화 상자를 표시하고 선택한 파일의 경로와 이름을 반환합니다. 파일을 열지 않습니다.
실제 응용 프로그램에서는 파일 이름에 좀 더 의미있는 작업을 수행합니다. 예를 들어, 다음과 같은 문을 사용하여 열 수 있습니다.
통합 문서. Open FileNameFileName 변수는 Variant 데이터 형식으로 선언됩니다. 사용자가 취소를 클릭하면 해당 변수에 부울 값 (False)이 포함됩니다. 그렇지 않으면 FileName은 문자열입니다. 따라서 Variant 데이터 형식을 사용하면 두 가지 가능성을 모두 처리 할 수 있습니다.