ビジネスに役立つ講座や交流会を開催
社長・個人事業主からサラリーマン・主婦まで、どなたでも
アベノ塾

ホーム  会場案内  お問合せ

〒545-0052
大阪市阿倍野区阿倍野筋3-12-2
あべのクオレ1F
(ナガセキャリアプラザ アベノ校)
TEL 06-6647-5571

(2)フォルダー内のすべてのファイル名表示と計算

(a)ファイルを検索して数量を表示する

d:\excelkensu内にエクセルファイルがあります。
 
指定したフォルダーの中のファイル名を返す関数Dirを使います。
ファイル名を変数bufに代入し空になるまでの繰り返しは
Do While 条件
Loop
を使います。
Windowsの前のMSDOSを使った方ならわかりますがファイルを全て検索するときは
Dir *.*
エクセルファイルのみ検索する場合は
Dir *.xlsx
をつかいました。今回もエクセルファイルだけなので*.xlsxを使います。
Sub kensu()
    Dim i As Long
    Dim buf As String
    Dim Path As String
    Path = "d:\excelkensu\"
    buf = Dir(Path & "*.xlsx")
    Do While buf <> ""
        i = i + 1
        buf = Dir()
    Loop
    MsgBox "全部で" & i & "個ファイルがありました"
End Sub

(b)エクセルのファイル名をシートに表示(コピー)します。

変数bufにファイル名が入っていますからその値をセルに代入します。


Cells(i, 1) = buf
セルに代入ということは表示と同じです。

Sub hyouji()
    Dim i As Long
    Dim buf As String
    Dim Path As String
    Path = "d:\excelkensu\"
    buf = Dir(Path & "*.xlsx")
    Do While buf <> ""
        i = i + 1
        Cells(i, 1) = buf
        buf = Dir()
    Loop
End Sub

(c)フォルダー内すべてのブックのシートの計算

各シートの1行1列に数字が入力されています。
その合計をシートに出力します。
エクセルファイルを検索するたびにそのファイルをオープンします。
変数keisanに加算しファイルを閉じ次のファイルを検索してなくなる迄繰り返します。
答えをCells(7, 1)に代入します。
Sub yobidasi()
    Dim keisan As Long
    Dim buf As String
    Dim Path As String
    Path = "d:\excelkensu\"
    buf = Dir(Path & "*.xlsx")
    Do While buf <> ""
       Workbooks.Open Path & buf
       keisan = keisan + Cells(1, 1)
       ActiveWorkbook.Close
       buf = Dir()
    Loop
    Cells(7, 1) = keisan
End Sub