Excelからファイルダイアログを開いてファイルやフォルダのパスを表示するにはApplicationオブジェクトのFileDialogプロパティを使う。
ファイルを選択 †
以下は複数のファイルを選択した場合の例である。
複数のファイルが選択されている場合は、SelectedItems
コレクションにデータが入っているのでループで回せば取得できる。
Sub ボタン1_Click() Dim i As Long With Application.FileDialog(msoFileDialogOpen) '複数選択を可能にする場合 .AllowMultiSelect = True .Title = "ファイルを選択してください" 'ダイアログを表示 If .Show = -1 Then '選択されたファイルを表示 For i = 1 To .SelectedItems.Count ActiveSheet.Cells(4 + i, 1) = .SelectedItems(i) Next i End If End With End Sub
フォルダを選択 †
Sub ボタン2_Click() Dim i As Long With Application.FileDialog(msoFileDialogFolderPicker) 'ダイアログを表示 If .Show = -1 Then '選択されたファイルを表示 ActiveSheet.Cells(5, 1) = .SelectedItems(1) End If End With End Sub
ファイルを開く †
Sub ボタン3_Click() Dim i As Long With Application.FileDialog(msoFileDialogOpen) '開くボタンが押された場合 If .Show = -1 Then .Execute End If End With End Sub
ファイルを保存する †
Sub ボタン4_Click() Dim i As Long With Application.FileDialog(msoFileDialogSaveAs) '開くボタンが押された場合 If .Show = -1 Then .Execute End If End With End Sub
ダイアログに指定できる定数 †
ダイアログの定数に指定できる値は以下のとおり。
fileDialogType | 説明 |
---|---|
msoFileDialogFilePicker | ファイル選択表示 |
msoFileDialogFolderPicker | フォルダー選択表示 |
msoFileDialogOpen | ファイルを開く表示 |
msoFileDialogSaveAs | ファイルを保存の表示 |
参考リンク †
- Application.FileDialog プロパティ (Excel) - - on https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.filedialog
- FileDialog メンバー (Office) - on https://docs.microsoft.com/ja-jp/office/vba/api/overview/library-reference/filedialog-members-office
- Open Files with VBA FileDialog msoFileDialogOpen - on https://wellsr.com/vba/2018/excel/vba-filedialog-open-msofiledialogopen/