엑셀 폴더 선택창 명령문 :: FolderDailog 함수 사용법

폴더선택창으로 사용자가 선택한 폴더의 경로를 반환하는 FolderDialog 함수의 사용법 및 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2021. 04. 18. 21:03
URL 복사
메모 남기기 : (2)

VBA 폴더 선택 명령문 :: FolderDialog 명령문 사용법 총정리

엑셀 FolderDialog 명령문 목차 바로가기
요약

엑셀 FolderDialog 명령문은 폴더선택창으로 사용자가 선택한 폴더의 경로를 반환하는 함수입니다.

명령문 구문
경로 = FolderDialog( [대화상자제목], [시작경로], [보기방식] )
사용된 인수 및 변수 알아보기
인수 설명
대화상자제목
[String, 선택인수]
폴더선택창 대화상자에 표시 될 대화상자 제목입니다. 기본값은 "폴더를 선택하세요." 입니다.
시작경로
[String, 선택인수]
폴더선택창의 시작 경로입니다. 기본값은 사용중인 PC의 시작경로입니다.
보기방식
[FileDialogView, 선택인수]
폴더선택창 보기방식입니다. 기본값은 자세히보기입니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.


상세 설명

엑셀 FolderDialog 명령문은 폴더선택창을 실행하여 사용자가 선택한 폴더경로를 반환하는 사용자지정함수입니다. 폴더경로가 아닌 특정 파일 경로를 반환하려면 Muleiple_FileDialog 함수를 사용합니다.

FolderDialog 명령문으로 아무런 경로가 선택되지 않으면, "선택된 폴더가 없어 프로그램을 종료합니다."라는 안내메시지가 출력되며 현재 실행중이던 모든 명령문을 종료합니다.

실전 사용 예제
  1. 사용자가 선택한 폴더경로 받아오기
    Sub Test1()
     
    Dim sFolder As String
     
    sFolder = FolderDialog
    MsgBox sFolder
    '사용자가 선택한 폴더 경로를 메시지박스로 출력합니다.
     
    End Sub
  2. 사용자가 선택한 폴더경로를 윈도우 탐색기로 실행하기
    Sub Test2()
     
    Dim sFolder As String
    sFolder = FolderDialog
    Shell "explorer.exe" & " " & sFolder, vbNormalFocus
    '사용자가 선택한 폴더 경로를 파일탐색기로 실행합니다.
     
    End Sub

VBA 폴더 선택 명령문, FolderDialog 명령문 동작원리

FolderDialog 명령문 전체 코드
Function FolderDialog(Optional Title As String = "폴더를 선택하세요", Optional InitialFolder As String = "", _
Optional InitialView As MsoFileDialogView = msoFileDialogViewList)
 
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 ([https://www.oppadu.com](https://www.oppadu.com/))
'▶ FolderDialog 함수
'▶ 폴더를 선택한 뒤, 폴더 경로를 텍스트로 반환합니다.
'▶ 인수 설명
'_____________Title         : 폴더 선택창에 표시할 대화상자 제목입니다.
'_____________InitialFolder : 시작 경로입니다.
'_____________InitialView   : 폴더 선택창 보기 방식입니다.
'▶ 사용 예제
'Dim sFolder As String
'sFolder = FolderDialog
'###############################################################
 
Dim sFolder As String
Dim Selected As Long
 
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = Title
.InitialView = InitialView
.InitialFileName = InitialFolder
Selected = .Show
 
    If Selected = -1 Then
        sFolder = .SelectedItems(1)
        FolderDialog = sFolder
    Else
        MsgBox "선택된 폴더가 없어 프로그램을 종료합니다."
        End
    End If
End With
 
End Function
명령문 동작원리 단계별 알아보기
  1. 폴더경로와 폴더 선택여부를 받아올 변수를 선언합니다.
    Dim sFolder As String
    Dim Selected As Long
  2. 폴더선택창을 실행한 뒤, 제목, 보기방식등을 설정합니다.
    With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = Title
    .InitialView = InitialView
    .InitialFileName = InitialFolder
    Selected = .Show
  3. 폴더가 선택되었을 경우 폴더경로를 반환 후 명령문을 종료합니다.
        If Selected = -1 Then
            sFolder = .SelectedItems(1)
            FolderDialog = sFolder
        Else
  4. 폴더가 선택되지 않았을 경우, 오류메시지 출력 후 명령문을 종료합니다.
            MsgBox "선택된 폴더가 없어 프로그램을 종료합니다."
            End
        End If
    End With
4 2 투표
게시글평점
2 댓글
Inline Feedbacks
모든 댓글 보기
2
0
여러분의 생각을 댓글로 남겨주세요.x