人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの質問です。

200個あるファイルの特定セルの足し算をしなければならなくなりました。

ファイル名は数字で001?200まである状態です。

何か便利な方法はありますか?
マクロなどありましたらよろしくお願い致します。

●質問者: junta
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:エクセル セル ファイル マクロ 数字
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●100ポイント ベストアンサー

マクロでの実行例です。

実際のファイルに合わせて、赤い部分を変更して実行してみてください。

'// 集計するデータ位置
Const dataCell = "A1"
'//データファイルのフォルダ 最後は \
Const dataFilePath = "C:\Data\"

Sub sumBooks()
 Dim filePath As String
 Dim sumWS As Worksheet
 '// 集計用シートを先頭に追加
 With ThisWorkbook
 Set sumWS = .Worksheets.Add(before:=.Worksheets(1))
 End With
 For i = 1 To 3
 filePath = dataFilePath & Right("000" & i, 3) & ".xls"
 With Workbooks.Open(filePath)
 '// B列にファイル名を表示
 sumWS.Cells(i, "B").Value = .Name
 '// C列にデータを表示
 sumWS.Cells(i, "C").Value = .Worksheets(1).Range(dataCell).Value
 .Close
 End With
 Next
 '// A1 に 合計を表示
 sumWS.Range("A1").Formula = "=SUM(C1:C200)"
End Sub

マクロを動かしたファイルの先頭シートに結果が集計されます。

◎質問者からの返答

Mookさん回答ありがとうございます。

何とかなりそうです。

ちなみにファイル名が違った場合(漢字のファイル名+数字、ランダムな数字)どこをいじればよいのかも教えていただけると幸いです。


2 ● Mook
●0ポイント

先の回答は、3つまでのファイルで試したので、For の範囲が3までになっていました。

失礼しました。


ファイル名が数値だと書かれていたので、ファイル名を数値としたのですが、

いろいろな名前だとすると難しいですね。

指定したフォルダに、あるファイルを全部集計するという処理でよいなら、下記のようでどうでしょうか。

'// 集計するデータ位置
Const dataCell = "A1"
'//データファイルのフォルダ
Const dataFilePath = "C:\Data\"

Sub sumBooks()
 Dim filePath As String
 Dim sumWS As Worksheet
 '// 集計用シートを先頭に追加
 With ThisWorkbook
 Set sumWS = .Worksheets.Add(before:=.Worksheets(1))
 End With
 
 Dim fso As Object
 Set fso = CreateObject("Scripting.FileSystemObject")
 Dim file As Object
 
 Dim index As Long
 index = 1
 '// フォルダ下のすべてのファイルを処理
 For Each file In fso.GetFolder(dataFilePath).Files
 filePath = dataFilePath & file.Name
 With Workbooks.Open(filePath)
 '// B列にファイル名を表示
 sumWS.Cells(index, "B").Value = file.Name
 '// C列にデータを表示
 sumWS.Cells(index, "C").Value = .Worksheets(1).Range(dataCell).Value
 .Close
 End With
 index = index + 1
 Next
 '// A1 に 合計を表示
 sumWS.Range("A1").Formula = "=SUM(C1:C200)"
End Sub

回答回数が2回になりましたので、コメントを有効にしていただければ、不明点はコメントで回答いたします。

◎質問者からの返答

たびたび回答ありがとうございます。

非常に参考になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ