[[20160921154952]] 『各ブックのすべてのデータを抽出』(ちゃんぽん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『各ブックのすべてのデータを抽出』(ちゃんぽん)

お世話になります。

メインブック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


集約シート、各ブックのSHeet1 ともに1行目がタイトル行という前提です。

 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.