VBA 파일 대화 상자 | VBA 코드를 사용하여 파일 대화 상자를 여는 방법?

Excel VBA 파일 대화 상자

VBA fieldialog는 서로 다른 인스턴스를 나타내는 데 사용되는 속성입니다. filedialog에는 주어진 경로에서 파일을 선택하는 데 사용되는 msofiledialogfilepicker라는 네 가지 유형의 상수가 있습니다. 세 번째는 msofiledialog가 파일을 열기 위해 열려 있고 마지막은 msofiledialogsaveas로 파일을 새 파일로 저장하는 데 사용됩니다.

다른 파일이나 다른 워크 시트의 데이터를 원하는 특정 상황이 있으며 VBA가 작업을 자동화하는 데 사용되기 때문에 VBA를 사용하여 다른 파일을 열 수 있습니다. 방법은 사용자에게 파일을 찾아 보도록 요청하는 대신 코드 경로를 제공 할 필요가 없다는 것입니다.

VBA 프로젝트의 일부로 다른 통합 문서를 열고 작업을 수행해야 할 수 있습니다. 이전 기사 중 하나 인 "VBA Workbook.Open"에서는 지정된 경로와 특정 파일을 사용하여 파일을 여는 방법을 보여주었습니다. 거기에서 확장자와 함께 폴더 경로와 파일 이름을 제공해야했습니다. 그러나 매번 사용자가 다른 폴더에서 다른 파일을 선택해야하는 경우에는 어떨까요? 여기에“FileDialog”옵션이 등장합니다.

VBA FileDialog 옵션은 어떻게 작동합니까?

"정확한 경로를 모르면 FileDialog가 파일을 찾아 선택합니다." 경로 주소와 파일 이름을 언급하는 대신 파일 열기 대화 상자를 별도로 표시하여 컴퓨터의 모든 폴더에서 파일을 선택할 수 있습니다.

이 VBA FileDialog Excel 템플릿은 여기에서 다운로드 할 수 있습니다 – VBA FileDialog Excel 템플릿

"FileDialog" 는 VBA의 개체입니다. 이 옵션을 사용하려면 먼저 변수를 FileDialog로 정의해야합니다.

변수가 "FileDialog"로 선언되면 개체 변수입니다. 이를 사용하려면 Application.FileDialog를 사용하여 개체를 설정해야합니다.

위의 그림에서 볼 수 있듯이 FileDialog에는 4 가지 옵션이 있습니다.

  • msoFileDialogFilePicker : 이 옵션은 사용자 앞에 파일 선택기 창을 열어 원하는대로 원하는 파일을 선택합니다.
  • msoFileDialogFolderPicker : 이 옵션은 폴더를 선택하기 위해 사용자 앞에 대화 상자 또는 창을 엽니 다.
  • msoFileDialogOpen : 사용자가 폴더에서 선택한 파일을 열 수 있습니다.
  • msoFileDialogSaveAs : 사용자가 파일을 다른 복사본으로 저장할 수 있습니다.

지금까지 msoFileDialogFilePicker 옵션을 선택했습니다 .

이제 우리 앞에 나타나는 대화 상자를 디자인해야합니다.

With Statement를 사용하여 대화 상자를 디자인 할 수 있습니다.

with 문 안에 점을 넣어 FileDialog 옵션의 속성 및 메서드에 대한 IntelliSense 목록을 확인합니다.

파일 대화 상자가 열릴 때 Excel 파일 만 보려면 먼저 적용된 필터를 제거해야합니다.

이제 엑셀 파일의 와일드 카드 확장자를 가진 "Excel 파일"로 새 필터를 적용해야합니다.

이제 파일 대화 상자의 제목을 변경해 보겠습니다.

사용자가 한 번에 하나의 파일 만 선택하도록 허용하거나 여러 파일을 선택할 수도 있습니다. 이를 위해 "다중 선택 허용"을 사용해야합니다.

여기에는 두 가지 옵션이 있습니다. TRUE를 선택하면 사용자가 FALSE 인 경우 여러 파일을 선택할 수 있으며 한 번에 하나의 파일 만 선택할 수 있습니다.

FileDialog로 디자인 할 수있는 또 다른 점은 파일 대화 상자가 나타날 때 기본 폴더가 무엇인지 실제로 주장 할 수 있다는 것입니다. 이를 위해 초기 파일 이름을 사용합니다.

이를 위해 주소 경로를 열 기본 폴더를 언급해야합니다.

이제 마지막으로 "Show"메서드를 적용하여 파일 대화 상자를 확인해야합니다.

암호:

 Sub DoEvents_Example1() Dim Myfile As FileDialog Set Myfile = Application.FileDialog(msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "*.xlsx?", 1 .Title = "Choose Your Excel File!!!" .AllowMultiSelect = False .InitialFileName = "D:\Excel Files" .Show End With End Sub 

Now run the VBA code to see the result.

As we can see in the above image file dialog box has opened the mentioned folder by default.

Now we can select any subfolder and select the excel files.

Look at the above image because we have applied the filter parameter as “Excel Files” only.

This will just select the file from the mentioned folder. To store the full path we need to declare one more variable as a string.

Now inside the with statement select “SelectedItems”. Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts”. If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use below code to select the files.

Code:

 Sub DoEvents_Example1() Dim Myfile As FileDialog Set Myfile = Application.FileDialog(msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "*.xlsx?", 1 .Title = "Choose Your Excel File!!!" .AllowMultiSelect = False .InitialFileName = "D:\Excel Files" .Show FileAddress = .SelectedItems(1) End With MsgBox FileAddress End Sub