VBA 파일 열기 대화 상자
VBA에서 Application.GetOpenFilename 메서드를 사용하여 파일을 선택여 열수 있습니다. 이 튜토리얼에서는 파일 대화 상자를 열고 매개변수를 설정하는 방법을 배웁니다.
파일을 열고 닫는 방법을 배우려면 이 링크를 클릭하세요: VBA 파일 열기/닫기
VBA에서 파일 대화 상자 열기
VBA에서 파일을 열려면 먼저 파일을 선택하기 위한 파일 대화 상자를 열어야 합니다. 다음 코드를 참조해 주세요:
Dim strFile As String
strFile = Application.GetOpenFilename(FileFilter:="Excel files (*.xlsx*), *.xlsx*", Title:="파일을 선택해주세요", MultiSelect:=True)
보시다시피 이 메서드에는 여러 매개변수가 있습니다. FileFilter를 사용하면 필요한 파일 유형(위 코드의 경우 .xlsx 파일)을 필터링할 수 있습니다.
Title 매개변수에서는 대화 상자의 제목을 설정할 수 있습니다. 여러 파일을 열 수 있도록 허용하려면 MultipleSelect를 True로 설정해야 합니다. 이 매개변수를 설정하지 않으면 하나의 파일만 선택할 수 있습니다.
이미지1. 파일 대화상자 열기
이미지1 에서 볼 수 있듯이 “파일을 선택해주세요” 라는 제목의 대화 상자가 나타납니다. Excel 파일만 필터링되며 여러 파일을 선택할 수 있습니다.
특정 폴더에서 파일 대화 상자 열기
특정 폴더에서 대화 상자를 열려면 매개 변수 msoFileDialogFilePicker와 함께 .FileDialog 메서드를 사용해야 합니다. 이 예에서는 C:\VBA Folder 폴더에 대화 상자를 열겠습니다. 다음 코드를 참고해 주세요:
Dim fd As Office.FileDialog
Dim strFile As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Excel Files", "*.xlsx?", 1
.Title = "파일을 선택해 주세요"
.AllowMultiSelect = False
.InitialFileName = "C:\VBA Folder"
If .Show = True Then
strFile = .SelectedItems(1)
End If
End With
먼저 Office.FileDialog 유형의 변수 fd와 파일 가져 오기를위한 문자열 변수를 선언해야합니다:
Dim fd As Office.FileDialog
Dim strFile As String
그런 다음 fd를 Application.FileDialog(msoFileDialogFilePicker)로 설정해야 합니다:
Set fd = Application.FileDialog(msoFileDialogFilePicker)
이제 With fd 와 End With 내에서 여러 매개 변수를 설정할 수 있습니다:
.Filters.Clear
.Filters.Add "Excel Files", "*.xlsx?", 1
.Title = "Choose an Excel file"
.AllowMultiSelect = False
여기서는 파일 필터(.Filters.Clear)를 지우고 .xlsx(.Filters.Add “Excel Files”, “*.xlsx?”, 1)로 설정합니다.
또한 대화 상자의 제목을 설정할 수 있습니다: .Title = “파일을 선택해 주세요”.
사용자가 하나의 파일만 선택하도록 제한할 수 있습니다:
.AllowMultiSelect = False
원하는 폴더에 대화 상자를 열려면 다음 코드를 넣어야 합니다:
.InitialFileName = "C:\VBA Folder"
마지막으로 위의 매개변수로 설정된 파일 대화 상자를 엽니다:
If .Show = True Then
strFile = .SelectedItems(1)
End If
이 코드를 실행하면 파일 열기 대화 상자가 C:\VBA Folder 에 나타납니다:
이미지 2. 특정 폴더에서 파일 대화 상자 열기