[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『各ブックのすべてのデータを抽出』(ちゃんぽん)
お世話になります。
メインブックSheet1のK列(K3〜K100(変動有))に記入されているファイルパスをみてエクセルファイルを開き開いた各ブックSheet1のA列〜G列(A2〜)に記入されているすべてのデータをコピー。
コピーしたデータをメインブックSheet2のA列〜G列(A2〜G2(月ごとにデータが増えるのでG3・・・G100というようになります))に記入ということを行いたいです。
各ブックのデータは月一ごとに蓄積されます。
なので、初月は各ブックのデータは一行あり、翌月には二行、というように毎月増えます。
このようなことをマクロ?VBA?で行うことは可能でしょうか?
色々なサイトで調べてみたのですが、当方全くの初心者なため理解することができませんでした。
皆様何卒よろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
蓄積方法としては、各ブックの最終行(当月のデータ)のみを取り込む、ないしは、過去に取り込み済みのデータをすべて削除した上で あらたに各ブックのすべてのデータを取り込むということが考えられます。
一長一短がありますが、そちらの運用としては、いずれを考えておられますか。
次に、各ブックの月データが1行だとして、集約イメージは
Aブックの4月の行 Aブックの5月の行 Aブックの6月の行 ' ' Bブックの4月の行 Bブックの5月の行 Bブックの6月の行 ' ' Cブックの4月の行 Cブックの5月の行 Cブックの6月の行 ' '
ですか? それとも
Aブックの4月の行 Bブックの4月の行 Cブックの4月の行 ' ' Aブックの5月の行 Bブックの5月の行 Cブックの5月の行
' ' Aブックの6月の行 Bブックの6月の行 Cブックの6月の行 ' '
ですか?
(β) 2016/09/21(水) 16:44
蓄積方法としては、各ブックの最終行(当月のデータ)のみを取り込む、ないしは、過去に取り込み済みのデータをすべて削除した上であらたに各ブックのすべてのデータを取り込むということが考えられます。
こちらにつきましては、過去の取り込み済みのデータをすべて削除したうえでという方法が望ましいです。
(読み込むブックが100ブックほどあるので、蓄積にしてしまうと確認がしづらいのと、データが重くなってしまう可能性があるので)
次に、各ブックの月データが1行だとして、集約イメージは
こちらにつきましては、上の案が望ましいです。(Aブックのすべてのデータを取得後、その下にBブックのデータを記入)
下記の案も大変ありがたいのですが、場合により月1での更新が行われず、月が飛んでしまう場合があるので・・・。
わざわざわかりやすいようにご説明いただきありがとうございます。
何卒よろしくお願いいたします。
(ちゃんぽん) 2016/09/21(水) 17:01
Sub Sample() Dim shM As Worksheet Dim shT As Worksheet Dim shF As Worksheet Dim c As Range
Application.ScreenUpdating = False
Set shM = ThisWorkbook.Sheets("Sheet1") Set shT = ThisWorkbook.Sheets("Sheet2")
shT.Range("A1").CurrentRegion.Offset(1).ClearContents 'タイトル行以外をクリア
For Each c In shM.Range("K3", shM.Range("K" & Rows.Count).End(xlUp)) If Dir(c.Value) <> "" Then Set shF = Workbooks.Open(c.Value).Sheets("Sheet1") shF.Range("A1").CurrentRegion.Columns("A:G").Offset(1).Copy shT.Range("A" & Rows.Count).End(xlUp).Offset(1) shF.Parent.Close False End If Next
shT.Select
End Sub
(β) 2016/09/21(水) 22:02
試しましたところ、望んだとおりの動きをしてくれました。
本当に感謝です。
(ちゃんぽん) 2016/09/23(金) 08:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.