Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 파일 다이얼로그 사용하기

엑셀(Excel)/VBA
반응형

파일 다이얼로그는 사용자에게 파일을 선택하거나 저장할 수 있는 기능을 제공합니다. 이것을 이용해서 사용자에게 직접 파일 경로나 이름을 입력할 필요 없이 편리하게 파일을 찾거나 저장할 수 있도록 해 줍니다. 또한 파일 다이얼로그를 통해 사용자가 잘못된 파일을 선택하는 실수를 줄일 수 있고, 파일 경로 및 이름을 정확하게 얻을 수 있습니다. 이는 데이터 입력 및 출력, 파일 처리, 보고서 생성 등 다양한 작업에 유용하며 사용자 경험을 향상시킵니다.

 

 

 

◎ 단일 파일 선택 다이얼로그 구현하기

 

▼ 먼저 파일 다이얼로그 객체를 생성할 수 있는 함수를 알아보겠습니다. 파일 다이얼로그 객체를 생성합니다. 파라미터로 파일 다이얼로그의 형태를 결정하는 타입의 종류를 입력합니다.

 

Set fd = Application.FileDialog(msoFileDialogFilePicker)

 

타입은 다음과 같이 4가지가 있습니다.

 

msoFileDialogFilePicker 파라미터 종류
 
l  msoFileDialogFilePicker : 사용자가 파일을 선택할 있는 타입
l  msoFileDialogFolderPicker : 사용자가 폴더를 선택할 있는 타입
l  msoFileDialogOpen : 사용자가 파일을 열수 있는 타입
l  msoFileDialogSaveAs : 사용자가 파일을 저장할 있는 타입

 

각 파일 다이얼로그 타입값이 화면에 어떻게 나타나는지 살펴보겠습니다. msoFileDialogFilePicker 는 화면에 모든 파일과 폴더가 나타납니다. 다중 파일 선택이 가능합니다.

 

msoFileDialogFolderPicker 옵션은 파일은 화면에 나타나지 않고 폴더만 보입니다.

 

기본적으로 msoFileDialogOpen는 하나의 파일을 선택하는 데 사용되며, msoFileDialogFilePicker는 여러 파일을 한 번에 선택하는 데 사용됩니다.  따라서 어떤 유형의 파일 대화 상자를 열고 어떤 종류의 파일 선택 작업을 수행하는지에 따라 적절한 파라미터 값을 선택합니다.

 

msoFileDialogSaveAs 은 사용자가 파일을 저장하고 싶을 때 사용하는 옵션입니다.

 

Show 함수를 이용해서 다이얼로그를 띄웁니다. 리턴 값으로 선택한 파일이 있는지 여부는 .SelectedItems.Count 속성으로 판단합니다. 리턴값이 0 이면 파일을 선택하지 않은 것이므로 함수를 Exit sub 빠져나갑니다.

 

With fd
        .Show
        If .SelectedItems.Count = 0 Then
            ''선택한 파일이 없는 경우
            Exit Sub
        Else
            Debug.Print "File Path : " & .SelectedItems(1)
        End If
End With

 

▼ 파일 다이얼로그를 구현한 전체 함수입니다. 함수를 실행한 결과는 아래 이미지로 확인할 수 있습니다. 파일 다이얼로그에서 선택한 파일 경로를 로그로 출력했습니다.

 

Sub filedialog_sample()
       
    Dim fd As FileDialog ' Declare
    Dim vSelectItem As Object
   
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
   
    With fd
        .Show
        If .SelectedItems.Count = 0 Then
            ''선택한 파일이 없는 경우
            Exit Sub
        Else
            Debug.Print "File Path : " & .SelectedItems(1)
        End If
    End With
   
End Sub

 

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 반복문 For Next 문 사용하기
엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법
엑셀 VBA 셀 참조하는 여러가지 방법
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 함수 만들어서 매크로와 연결하기

 

 

◎ 멀티 파일 선택 다이얼로그 구현하기

 

▼ 다음은 멀티 선택 옵션을 이용해서 다이얼로그를 띄웠을 때 선택한 경로를 출력하는 방법입니다. 옵션은 멀티 선택이 가능한 msoFileDialogFilePicker 을 사용하였습니다. 그리고 멀티 선택이 가능하도록 속성값을 지정해야 합니다.

 

AllowMultiSelect = True

 

선택한 파일 개수 만큼 For 문을 반복합니다.

 

For lngCount = 1 To .SelectedItems.Count
     Debug.Print .SelectedItems(lngCount)
Next lngCount

 

화면은 파일 다이얼로그에서 멀티 선택한 모습입니다.

 

멀티로 파일을 선택한 경우 파일명을 출력하는 방법은 다음과 같습니다. For 문을 돌면서 선택한 파일을 출력하였습니다.

 

Sub filedialog_sample()
       
    Dim fd As FileDialog ' Declare
    Dim vSelectItem As Object
    Dim lngCount As Long
   
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
   
    With fd
        .AllowMultiSelect = True
        .Show
        If .SelectedItems.Count = 0 Then
            ''선택한 파일이 없는 경우
            Exit Sub
        Else
           
            For lngCount = 1 To .SelectedItems.Count
                Debug.Print .SelectedItems(lngCount)
            Next lngCount
           
        End If
    End With
   
End Sub

 

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 반복문 For Next 문 사용하기
엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법
엑셀 VBA 셀 참조하는 여러가지 방법
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 함수 만들어서 매크로와 연결하기
반응형
Posted by 녹두장군1
,