[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォルダ内集計』(コルト)
月別のデータを1つのフォルダにまとめ、集計をしようとしています。
集計したいファイルは集計用のファイルと一緒にデスクトップのフォルダ(フテスト)に入っています。
全てのファイルはタイトル行にデータが入っているので集計先の2行目以降に貼り付けを行い(コピー元の2行目から最終行を最終行の次に順次貼り付け)、すべてを張り付けたらアウトラインの小計で集計を行っています。集計の設定は基準はC列目、集計の方法は個数、フィールドはABE列目に設定し、改ページを挿入して実行しています。
Sub 集計()
'
' 集計 Macro
'
'
Range("A2:M2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Windows("集計.xlsm").Activate Range("A2").Select ActiveSheet.Paste Selection.End(xlDown).Select Range("A2:M2").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Windows("集計.xlsm").Activate ActiveSheet.Paste Selection.End(xlDown).Select Range("A2:M2").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Windows("集計.xlsm").Activate ActiveSheet.Paste Selection.End(xlDown).Select Range("A2:M2").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Windows("集計.xlsm").Activate ActiveSheet.Paste ActiveWindow.Close ActiveWindow.Close ActiveWindow.Close ActiveWindow.Close Selection.End(xlUp).Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A5069" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B2:B5069" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("C2:C5069" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("E2:E5069" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:M5069") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Selection.Subtotal GroupBy:=3, Function:=xlCount, TotalList:=Array(1, 2, 5) _ , Replace:=True, PageBreaks:=True, SummaryBelowData:=True End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
1)別シートに、データをコピペするマクロ
2)フォルダ内のすべてのブックに同じ処理をするマクロ
3)データが入力されている最終行を求めるマクロ
4)並べ替えのマクロ
5)小計のマクロ
本題の2)は最後がよいと思います。
(マナ) 2018/05/26(土) 12:44
1)3)で1つ作り
4)を作り
5)を作り
繋げて、1つのブックで集計できるか動作確認
最後に、1)3)部分に2)を追加し、
複数ブックの集計ができるようになれば完成です。
(マナ) 2018/05/26(土) 13:22
そうですが、
>その場合の構成文ってどうすれば良かったんでしたっけ
1つのファイルであれば、
>ファイルの2行目以降をコピーして集計先のファイルの最終行に貼り付けを行うコード
はできているということでしょうか?
http://www.relief.jp/docs/excel-vba-open-excel-files-specified-folder.html
>また4と5は小計で一遍にやってしまっても問題ないですか?
ごめんなさい。小計だけでできるとは知りませんでした。
できるのであれば、問題ありません。
(マナ) 2018/05/26(土) 16:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.