2013年10月12日

エクセル(excel)VBAでフォルダー内のファイル名一覧自動作成

早速ですが本題に
エクセルVBAでフォルダー内にあるファイル名一覧を自動取得してみたいと思います。


ここからソース
-*-*-*-*-*-*-*--*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*-**--*-*-*-*-*-*-*-*-*-*
Sub ファイル名一覧()
  '変数作成
  Dim Shell, フォルダパス
  'フォルダ選択ダイアログ表示
  Set Shell = CreateObject("Shell.Application")
  Set フォルダパス = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\")
  'ダイアログで選択した取得フォルダのパスをB1セルに書き込み
  Cells(1, 2).Value = フォルダパス.items.Item.Path
  'ファイル名取得
  ファイル名 = Dir(フォルダパス.items.Item.Path & "\*.*")
  'ファイル名書き込み開始位置指定
  行番号 = 4
        'ファイル名取得ループ
        Do While ファイル名 <> ""
        'ファイル名取得
            Cells(行番号, 1).Value = ファイル名
        'ファイルサイズ取得
            Cells(行番号, 2).Value = FileLen(フォルダパス.items.Item.Path & "\" & ファイル名)
        'ファイル更新日取得
            Cells(行番号, 3).Value = FileDateTime(フォルダパス.items.Item.Path & "\" & ファイル名)
        '次の行に書き込み準備
            行番号 = 行番号 + 1
        '次のファイル名再取得
            ファイル名 = Dir()
        '条件が一致するまでDo whileに戻る
        Loop
  ' セルの幅自動調整
    Cells.Select
    Cells.EntireColumn.AutoFit
    Cells(1, 1).Select
End Sub
-*-*-*-*-*-*-*--*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*-**--*-*-*-*-*-*-*-*-*-*

元ネタは日経PCなのですが、ひと手間加えて
ダイアログでフォルダを選択できるように改造しましたわーい(嬉しい顔)
【関連する記事】
posted by mako at 14:11| Comment(1) | excelエクセル | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
フォルダ内のファイル名一覧を自動作成を考えています。
まだまだ初心者ですか下記にように考えています。

@Sample1は、取得できますが、取得後の設定位置の指定がわかりません。
Aファイル一覧は、動作しまわかる方教えていただけないでしょうか。、

また、ファイル内階層別の取得方法がわかりましたら教えていただけないでしょうか。


・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
Sub Sample1()
Dim buf As String, cnt As Long
Const Path As String = "C:\Users\yanma\Downloads\"
buf = Dir(Path & "*.*")
Do While buf <> ""
cnt = cnt + 1
Cells(cnt, 1) = buf
buf = Dir()
Loop
End Sub

・・・・・・・・・・・・・・・・・・・・・・・
Sub ファイル一覧()

フォルダパス = Cells(1, 2).Value
ファイル名 = Dir(フォルダパス & " \ *.*")
行番号 = 4
Do While ファイル名 <> ""
行番号 = 行番号 + 1
ファイル名 = Dir()
Loop
End Sub

Posted by yanmaguro at 2016年07月10日 13:53
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。