[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.