Top > フォルダー内のファイル名表示・計算

VBA通信教材申込み

VBA課題解決型実践塾セミナー内容

申込 ヤフーショッピング

フォルダー内のファイル

フォルダー内のすべてのファイル名表示と計算
フォルダーの中のエクセルのシートを全て自動計算させたいという話がありました。
ITの合理化は自動化させることです。

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

フォルダー

d:\excelkensu内にエクセルファイルがあります。
フォルダーの中のエクセルのシートを全て自動計算させたいという話がありました。
ITの合理化は自動化させることです。
指定したフォルダーの中のファイル名を返す関数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

(d)フォルダー内すべてのブックの特定のセルとブック名を1枚のシートに集める

勤怠フォルダーの中のブックの特定のセルを新しいシートにコピーします。

フォルダー内のファイルを集める

フォルダー内のファイルを集める

各ブックの名前を取得してセルに貼り付けます。

フォルダー内のファイルを集める

Sub 取り込み()
  Dim Path As String
  Dim buf As String
  Dim i As Long
  Dim bname As String
  Dim nagasa As Long
  Path = "D:\勤怠\"
  buf = Dir(Path & "*.xlsx")
  i = 2
'合体シートにデータを転記するために消し、見出しを作成する
  Worksheets("合体").Cells.Clear
  Worksheets("合体").Cells(1, 1) = "名前"
  Worksheets("合体").Cells(1, 2) = "合計数字"
'勤怠フォルダーのブックの決まった場所セルを順次合体シートに転記する
  Do While buf <> ""
    Workbooks.Open Path & buf
'ブックの名前から.xlsxを除いて取り出す
    bname = Workbooks(2).Name
    nagasa = Len(bname)
    bname = Mid(bname, 1, nagasa - 5)
    Workbooks(1).Worksheets("合体").Cells(i, 1) = bname
    Workbooks(1).Worksheets("合体").Cells(i, 2) = Workbooks(2).Worksheets("勤怠").Cells(1, 2)
    i = i + 1
    ActiveWorkbook.Close
    buf = Dir()
  Loop
  Worksheets("合体").Select
End Sub

塾長あいさつ
基本方針(考え方)
通信教育内容
課題解決セミナー内容
初心者基礎コース内容
カリキュラム・料金
案内地図・各種リンク
問合せ・申込み
アベノ塾
システムの内製化
アサイコンピュータACS
応用部品集(有料)
販売管理(事例)
財務管理(事例)
顧客管理(事例)
見積もり(事例)
給与(事例)
介護(事例)
ゴースト暗算(事例)
部品集(部品の基礎)
部品集(シート関連)
部品集(データベース)
部品集(セル関連)
部品集(関数)
部品集(フォーム関連)
部品集(ブック関連)
部品集(その他)
変数の勉強
繰り返しと条件文
マスター登録.訂正.削除
フォルダー内のファイル
項目をシート名で作成
ブックの操作
CSVファイルの取り込み
呼び出し元・先
商品マスター検索
エクセル関数をVBAで
エクセル関数を使う
よくつかうプログラム
販売管理(ソース)
財務管理(ソース)
給与管理(概要・画面)
見積もり(概要・画面)
工程管理(概要・画面)
原価管理(概要・画面)