[[20141125151837]] 『VBA フォルダパス取得およびフォルダ内のファイメx(まあちゃ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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

ファルダ内のファイル名を確認して、フォルダを選択したいのです。
フォルダを開いて、その開いているフォルダパス、フォルダ内のファイル名を取得するイメージです。
(まあちゃ) 2014/11/25(火) 18:17

 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.