[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数シートのデータを一つにまとめる マクロ』(マクロ超初心者)
こんにちは。
複数シートのデータを一つにまとめるマクロを教えて頂きたいです。
ネットで探しで一括にまとめることはできたのすが、指定した列を抜き出すことが中々できません。
各シートの「CA〜CGの列」だけのデータを抜き出しまとめたいです。
行は各シートバラバラですが列は同じです。
何卒、宜しくお願いします。
< 使用 Excel:Excel2007、使用 OS:Windows10 >
>ネットで探して一括にまとめることはできたのすが
そのコードをアップしてください。 ※現物コードだと、支障が出る記述がある場合は、そこだけ無難な表記に変えてください。
(半平太) 2022/02/26(土) 13:55
ネットで探したのは下記となります。
どのように変更したら良いのかが分かりません。
列番号「CAやCG」を入力してみたのですが、上手くいきませんでした。
お手数ですが宜しくお願いします。
Sub shuukei_all()
Dim Shuukei_cell Shuukei_cell = 1
Dim w As Worksheet For Each w In Worksheets If w.Name <> "集計" Then Dim Last_row Last_row = w.Range("d" & Rows.Count).End(xlUp).Row Shuukei_cell = Range("a" & Rows.Count).End(xlUp).Row w.Rows("1:" & Last_row).Copy Range("a" & Shuukei_cell + 1) End If Next
End Sub
(マクロ超初心者) 2022/02/26(土) 14:00
そのコードは、ちょっと危ないですよ。 状況によっては、結果オーライなのかも知れませんが・・
> Last_row = w.Range("d" & Rows.Count).End(xlUp).Row コピー元シートD列の最終行を利用している。
>Shuukei_cell = Range("a" & Rows.Count).End(xlUp).Row コピー先のA列で最終行を利用している。
それそれの列が全てデータで埋まっているなら問題ないですが、 一部空白があって、全体の最終列はもっと下にあると面倒なことになります。
その点は問題ないですか? 問題ないなら ↓ Sub shuukei_all() Dim WsShuukei As Worksheet Dim Shuukei_cell Dim w As Worksheet Dim Last_row
Set WsShuukei = Worksheets("集計")
For Each w In Worksheets
If w.Name <> "集計" Then Last_row = w.Range("D" & Rows.Count).End(xlUp).Row
Shuukei_cell = WsShuukei.Range("A" & Rows.Count).End(xlUp).Row
Intersect(w.Columns("CA:CG"), w.Rows("1:" & Last_row)).Copy WsShuukei.Range("A" & Shuukei_cell + 1) End If Next End Sub
(半平太) 2022/02/26(土) 14:31
> Shuukei_cell = WsShuukei.Range("A" & Rows.Count).End(xlUp).Row > Intersect(w.Columns("CA:CG"), w.Rows("1:" & Last_row)).Copy WsShuukei.Range("A" & Shuukei_cell + 1)
そこ、ちょっと無駄感が強いなぁ・・ これの方が良さそう。
Set Shuukei_cell = WsShuukei.Range("A" & Rows.Count).End(xlUp) Intersect(w.Columns("CA:CG"), w.Rows("1:" & Last_row)).Copy Shuukei_cell.Offset(1)
(半平太) 2022/02/26(土) 14:38
返信が遅くなりました。
無事きちんと集計することが出来ました!!
ありがとうございます!
今後のため、もし空白があった場合のバージョンも教えて頂けないでしょうか。
職場のチームで共有しているので、人によって入力の仕方が異なり空白があり
エラーを起こしかねない為です。
何卒、宜しくお願い致します。
(マクロ超初心者) 2022/02/26(土) 18:00
申し訳ございません。
きちんと確認してみた所、抽出されるデータが最初の1行のみしか抽出されません。
2行目以降の全てのデータが抽出されておりませんでした。
お手数ですが、ご確認頂けますでしょうか。
宜しくお願い致します。
(マクロ超初心者) 2022/02/26(土) 18:23
>ご確認頂けますでしょうか。
確認はできないです。データがどんな状況にあるのか説明がないので。
これでどうですかね?
Sub shuukei_all() Dim WsShuukei As Worksheet Dim Shuukei_cell As Range Dim w As Worksheet Dim Last_row
Set WsShuukei = Worksheets("集計")
For Each w In Worksheets
If w.Name <> "集計" Then Set Shuukei_cell = WsShuukei.Cells.Find("*", WsShuukei.Range("A1"), xlValues, , xlByRows, xlPrevious)
If Shuukei_cell Is Nothing Then Set Shuukei_cell = WsShuukei.Range("A1") End If
Last_row = w.Cells.Find("*", w.Range("A1"), xlValues, , xlByRows, xlPrevious).Row Intersect(w.Columns("CA:CG"), w.Rows("1:" & Last_row)).Copy Shuukei_cell.EntireRow.Cells(2, 1) End If Next End Sub
(半平太) 2022/02/26(土) 19:11
ありがとうございます!
空白セルや空白行があっても、きちんと全てのデータを抽出できました。
理想通りとなり業務がかなりはかどります。
本当にありがとうございました!感謝感謝です!!!
(マクロ超初心者) 2022/02/26(土) 19:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.