[[20050324161946]] 『指定したフォルダのファイルリストを作りたい』(HIDE) ページの最後に飛ぶ

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

 

『指定したフォルダのファイルリストを作りたい』(HIDE)
 A列に作ったファイルのリストから順番に画像を貼り付けていくマクロを作りました。
 A1にパス(カレントディレクトリとして)、A2以降にファイル名を入力しておいて、
 上から順番に読み込んでいくようになっているのですが、ファイルリストの作成は
 他のソフトを使って作り、それを貼り付けています。
 このファイルリストの作成を、エクセルで行いたいのです。
 フォルダ内には画像のファイルしかないので、種類を判別する必要はありません。
 数は多くても1000を超えるようなことはありません。

 自分のできる範囲で作ってみたものがこれです。

 Sub リスト作成()

 Dim p As String
 Dim f As String
 Dim i As Integer

 Range("A1").Select
 p = Selection.Value
 f = Dir(p)

 For i = 0 To 1000
 Cells(i + 2, 1).Select
 Selection.Value = f
 If f = "" Then Exit For
 f = Dir()
 Next i

 End Sub

 A1にあらかじめパスを入力しておいて、そのフォルダ内のファイルを
 一覧していますが、ファイル数がわからないので1000回ループで
 ファイルが無くなったら終了というやり方になってしまいました。
 FindFileのダイアログボックスのようにパスを指定して、そのフォルダ内の
 ファイル数を取得するにはどうすればよいでしょうか。
 よろしくお願いします。


 こんなかんじです。

 Sub aa()
 Dim myObj As Object
 Dim myFileName As String
 Dim myDir As String

 Set myObj = CreateObject("Shell.Application"). _
 BrowseForFolder(0, "フォルダを選択してください", 0)

 If myObj Is Nothing Then Exit Sub

    myDir = myObj.Items.Item.Path & "\"
    myFileName = Dir(myDir & "*", vbHidden + vbSystem)

    Do
        Cells(Rows.Count, 2).End(xlUp).Offset(1).Value = myFileName
        Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = myDir
        myFileName = Dir()
    Loop Until myFileName = vbNullString

    Range("A1").Value = "フォルダ名"
    Range("B1").Value = "ファイル名"
    Columns("A:B").AutoFit
 End Sub

  (INA)


 できました!
 作成していただいたマクロ、まだ初心者なので、わからない部分も多いですが、
 参考にして勉強したいと思います。
 ありがとうございました!
 (HIDE)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.