[VBA] MS Access 파일을 불러오기 대화상자에서 디폴트 폴더 설정하기

이번 글에서는 MS Access 파일을 불러오기 대화상자에서 디폴트 폴더 설정하는 방법에 대해서 알아보겠습니다. MS Access에서 외부 파일 연동은 자주 사용하는 기능 중 하나입니다. 사람들이 Access 보다는 Excel이 더 익숙하기 때문에 Access의 내용을 Excel로 Export 하여 보길 원하고 Access 데이터베이스의 작업 결과를 엑셀이나 워드에 기록하고자 하는 필요가 생깁니다.

이 때 대화상자를 이용하게 되는데 대화상자를 통해 파일을 선택할 시에 보통은 ‘문서’ 폴더가 디폴트로 설정되어 있습니다. ‘문서’ 폴더로부터 자신의 작업 폴더까지 이동하기 위해서 매번 번거로운 절차를 거쳐야 됩니다. 이 글에서는 처음 대화상자를 실행하였을 때 폴더 위치를 Access 파일이 저장된 폴더로 하는 방법에 대해서 알아보도록 하겠습니다.

  • .InitialFileName = CurrentProject.Path & “\” 추가

MS Access 파일을 불러오기 대화상자에서 디폴트 폴더 설정

먼저 전체 코드부터 살펴보면 아래와 같습니다.

Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)

With fd 
    .Filters.Clear
    .Title = "Excel 파일 열기" 
    ' xlsm은 매크로 포함 통합 문서를 열 때 필요하며, 일반 엑셀파일은 xlsm을 xlsx로 수정
    .Filters.Add "Excel Files", "*.xlsm?", 1
    .AllowMultiSelect = False
    .InitialFileName = CurrentProject.Path & "\"

    Dim sFile As String 

    If .Show = True Then 

        sFile = .SelectedItems(1)
    End If

    If sFile <> "" Then 
        On Error Resume Next 
        Set MyXL = GetObject(, "Excel.Application") 
        If Err.Number <> 0 Then Set MyXL = CreateObject("Excel.Application")
        On Error GoTo 0 

        Set wb = MyXL.Workbooks.Open(sFile)
        wb.Activate
    Else
        Exit Sub 
    End 
End With
  • 1~2 : FileDialog를 fd로 선언합니다.
  • 5~9 : fd의 title, filter, multiselection 등 여러 속성을 적용합니다.
  • 10 : 초기 시작 위치를 설정합니다. CurrentProject.Path는 현재 Access 파일이 저장된 위치를 리턴합니다. 마지막에 “\” 를 추가하지 않으면 파일명에 폴더명이 남아있게 됩니다.
  • 14~17 : 파일을 열기 위해서 선택한 파일 경로를 sFile에 저장합니다.
  • 19~29 : 파일 선택 시 취소를 하게 되면 빈 값이 리턴됩니다. 이를 판단 후 파일 경로의 파일을 열어줍니다.
Categories VBA

Leave a Comment