[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA フォルダパス取得およびフォルダ内のファイル名取得』(まあちゃ)
フォルダを選択するダイアログボックスを表示させて(ファイルも表示させて)任意のフォルダを選択したい。
そのフォルダパスとフォルダ内のファイル名取得したいのです。
msoFileDialogFolderPickerを使用すると、フォルダパスとフォルダ内のファイル名は取得できるのですが、ファイルが表示されません。
ファイルも表示させる方法ありませんか。
Sub test()
Dim dlg As FileDialog Dim fd_path As String 'フォルダのフルパス Dim fl_name As String 'ファイル名 Dim i As Long 'ファイル名を出力する行番号
Set dlg = Application.FileDialog(msoFileDialogFolderPicker) With dlg .Title = "フォルダを選択してください" End With 'キャンセル時にはマクロを終了 If dlg.Show = False Then Exit Sub
'フォルダのフルパスを格納 fd_path = dlg.SelectedItems(1)
'フォルダ内の一つ目のファイル名を取得 fl_name = Dir(fd_path & "\*") If fl_name = "" Then MsgBox fd_path & " にはファイルが存在しません。" Exit Sub End If
Range("A1").Value = fd_path
'B1セルから下にファイル名を書き出し i = 1 Do Until fl_name = "" Cells(i, "B").Value = fl_name i = i + 1 '次のファイル名を取得 fl_name = Dir Loop End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
こんな話でしょうか。 http://www.239-programing.com/excel-vba/func/func014_2.html (Mook) 2014/11/25(火) 17:13
Sub main() MsgBox get_folder_path("フォルダー選択", &H4000) End Sub Function get_folder_path(Optional ByVal mes As String = "", _ Optional ByVal opt As Variant = 0, _ Optional ByVal 初期値 = 17) As Variant Dim fld As Object On Error Resume Next get_folder_path = False Do While get_folder_path = False Err.Clear Set fld = CreateObject("Shell.Application").BrowseForFolder(0, mes, opt, 初期値) If Err.Number = 0 Then If Not fld Is Nothing Then If fld.items.Item.isfolder Then get_folder_path = fld.items.Item.Path End If Else Exit Do End If End If Loop Set fld = Nothing On Error GoTo 0 End Function
ファイル名を選択すると、再選択させることにしました。
選択可能なのは、あくまでもフォルダーです (ichinose) 2014/11/25(火) 21:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.