
フォルダ内の複数ファイルから、特定セルだけを抽出し、並び替えて集約したい
VBA初心者です。
VBAが書かれたブックと同一フォルダ内にある200個のブックから、特定セルの値を取得し、1つのブックに集約したいです。全てのブックを1つ1つ開いて手作業でコピペするのが大変な為、何かVBAで良い方法はありませんでしょうか? この作業は毎月発生します。まだ凄く簡単なマクロしかわからない為、具体的なコードを書いて頂けると嬉しいです。
1つのファイルに社員3人分のデータが入っています。
集約の際は、これを縦方向に集約したいです。
言葉で上手く説明できないため、画像を添付します。
画像上半分は集約元のブックの内容です。200個全て同じように入力されています。
画像下半分は集約後のブックイメージです。
◆集約元ブック
nameという名前のシートしかありません。
<取得したいセル>
C列 C4~C5と、C9~C11
D列 D4~D5と、D9~D11
E列 E4~E5と、E9~E11
◆集約先ブック
集約シートという名前のシートしかありません。
A2セルから書き始めたいです。
◆PC環境
Windows10Pro 64bit
office2013

No.2ベストアンサー
- 回答日時:
こんばんは
既に回答がありますが、一例として配列での処理方法です
Sub Sample()
Dim folderPath As String, fname As String
Dim n As Long, i As Long
Dim Ary()
folderPath = ThisWorkbook.Path & "\"
fname = Dir(folderPath & "\" & "*.xlsx")
Do Until fname = ""
Application.ScreenUpdating = False
With Workbooks.Open(folderPath & fname)
For i = 3 To 5
ReDim Preserve Ary(4, n)
Ary(0, n) = Cells(4, i)
Ary(1, n) = Cells(5, i)
Ary(2, n) = Cells(9, i)
Ary(3, n) = Cells(10, i)
Ary(4, n) = Cells(11, i)
n = n + 1
Next
.Close SaveChanges:=False
End With
fname = Dir
Loop
With ThisWorkbook.Worksheets(1)
.Range("A2").Resize(UBound(Ary, 2) + 1, 5) = _
Application.Transpose(Ary)
End With
Application.ScreenUpdating = True
End Sub
ありがとうございます。
配列ですね。配列は、なんだかとっても難しそうなイメージでしたが、ご教示頂いたコードは応用で他のものにも使えそうなので、こちらをベストアンサーとさせて頂ければと思います。
教えて頂いたコードで試したら、バッチリ集約出来、これで毎月の作業にかかる時間が短縮できミスもなく作業が進み楽になるので、大変助かりました。
No.1
- 回答日時:
こんばんは
なんだか、ほとんど同じ内容の質問に今日回答したような記憶が・・・
不明点はテキトーです。
あとは、ご随意に。
Sub Sample_Q12359472()
Dim fName As String, rng
Const folderPath = "C:\hogehoge\test" ' 指定フォルダパス
Application.ScreenUpdating = False
Set rng = Worksheets(1).Range("A2:H4")
rng.Worksheet.Rows("2:" & Rows.Count).ClearContents
fName = Dir(folderPath & "\*.xlsx")
While fName <> ""
With Workbooks.Open(folderPath & "\" & fName)
.Worksheets(1).Range("C4:E11").Copy
rng.PasteSpecial Paste:=xlPasteValues, Transpose:=True
Set rng = rng.Offset(3)
.Close False
End With
fName = Dir()
Wend
rng.Worksheet.Range("C2:E2").Resize(rng.Cells(1, 1).Row).Delete (xlShiftToLeft)
Application.ScreenUpdating = True
End Sub
ありがとうございます。
fujillinさんの他の方への回答を見たら、確かに似たような質問に回答なさってましたね。大変失礼しました。コードをご教示いただき、大変助かりました。
全ての範囲を集約したいブックに貼り付けて、最後に不要列を削除するという発想は、自分には思いつきませんでした。勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した
Excel(エクセル)
-
複数のExcelブックから特定シートの特定セル抽出
その他(Microsoft Office)
-
複数エクセルから特定シートの特定行だけを別シートに抽出するマクロ
Excel(エクセル)
-
-
4
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
5
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
-
6
VBAで複数のブックを開かずに処理する方法
Visual Basic(VBA)
-
7
Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい
Excel(エクセル)
-
8
エクセルでファイルを開かずに文字を検索し、行を抽出したい
Excel(エクセル)
-
9
複数ファイルから特定シートのコピー
Excel(エクセル)
-
10
【至急】エクセルで複数のファイルから文字列を検索、行全てを抽出する
Excel(エクセル)
-
11
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
12
【マクロ】【VBA】同じフォルダ内にあるエクセルのデータを転記したい【ブック1からブック2へ】
Excel(エクセル)
-
13
Excelで複数ブックの同一セルに同じ値を入力するにはどうすればよいですか?
Excel(エクセル)
-
14
【VBA】コピー&複数個所のペースト繰り返し
Excel(エクセル)
-
15
マクロ初心者です、エクセルでファイルの読込フォルダを固定から選択式に変更したいです。
Visual Basic(VBA)
-
16
大量のフォルダからひとつのフォルダにファイルをまとめたい!
その他(ソフトウェア)
-
17
【VBA】フォルダ内の複数Excelのセルをコピー
Visual Basic(VBA)
-
18
Excelシートの保護時にデータの並び替え
その他(Microsoft Office)
-
19
フォルダ内の全てのファイルに貼り付けを行うマクロを作りたい
Visual Basic(VBA)
-
20
EXCEL(VBA)で指定フォルダ内の最新ファイル名を取得したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの新しい空白のブックを開...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
Excelの警告について
-
Excel VBAでブックを閉じる時、...
-
Excelファイルをダブルクリック...
-
複数ファイルから特定シートの...
-
エクセルで参照しているデータ...
-
別ブックから入力規則でリスト...
-
エクセルで別ブックをバックグ...
-
WorkBooksをオープンさせずにシ...
-
Excel 他のbookの複数のシート...
-
Excelでブックの共有を掛けると...
-
vbaでpdfを開いて1ページ目のみ...
-
EXCEL 複数人で共有ブックへの...
-
Excelで行または列を非表示にし...
-
アクセスvbaでエクセルブックを...
-
Excelで指定範囲のデータ...
-
エクセルファイルを開かずにpdf...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
Excelの警告について
-
Excelファイルをダブルクリック...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
Excel(2010)のフィルターが保...
-
Excelで複数ブックの同一セルに...
-
エクセルファイルを開かずにpdf...
-
エクセルにおける,「ブック」...
-
同じフォルダへのハイパーリン...
-
エクセルで別ブックをバックグ...
-
フォルダ内の複数ファイルから...
-
VBA バックグラウンドで別ブッ...
-
エクセルでウィンドウの枠固定...
-
ブックのピボットを別ブックに...
-
フォルダ内の複数ファイルから...
-
エクセルで50行ごとに区切った...
おすすめ情報