Excel複数シート集計 複数シートにあるすべてのデータをマクロで1枚のシートに【サンプルあり】

  • URLをコピーしました!

Excelで複数のシートを集計する方法その3です。
今回は、すべてのデータをマクロを使って1枚のシートに集計します。
シート集計マクロ

すべてのデータを1枚のシートに

これまで、同じサンプルを使った事例で複数のシートを集計する方法を解説してきました。
サンプルでは、4月〜3月のデータの合計を1枚のシートに集めています。

スクリーンショット 2013 09 15 18 07 09

Excel複数シート集計ー各シート最下部の合計値をINDIRECT関数・COUNTA関数で瞬時に集計する方法ー[サンプルあり] | EX-IT

 

 

 

 

Excel複数シート集計ーマクロを使う方法【サンプルあり】ー | EX-IT

 

 

 

 

 

今回は合計値だけではなく、すべてのデータを1枚のシートに集めるマクロを解説します。

 

 

複数のシートを1枚にするマクロの書き方

今回のマクロは次のとおりです。
ーーー貼り付け用ーーー

Sub shuukei_all()

 Dim Shuukei_cell
 Shuukei_cell = 2

 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("2:" & Last_row).Copy Range("a" & Shuukei_cell + 1)
  End If
 Next

End Sub

ーーーここまでーーー
ーーー解説用ーーー
Sub shuukei_all()

Dim Shuukei_cell
Shuukei_cell = 2・・・①
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(“2:” & Last_row).Copy Range(“a” & Shuukei_cell + 1)・・・⑥
End If
Next

End Sub

①シート「集計」の貼り付け位置の初期値を決めます。処理前は、シート「集計」が次のように2行目から貼り付けるようになっているので、初期値は「2」です。

スクリーンショット 2013 09 15 17 52 57

これが「1」だと見出しの位置に貼り付けてしまいますし、指定しないと、初期値は0となりエラーが出ます。
「0行目」が存在しないからです。

②すべてのワークシートで処理を実行します。

 

③ただし、シート「集計」以外のシート(「4月」〜「3月」)でのみ実行するため、IFで条件を指定します。

 

④Last_row に各シートの最終行を入れていきます。
たとえば、シート「4月」なら37です。
すべてのデータを集計しますので、各シートのデータ数をカウントします。
(「各シート」は、変数wで指定)
スクリーンショット 2013 09 15 17 52 23

 

⑤Shuukei_cell にシート「集計」の貼り付け位置を入れていきます。
①で指定したとおり初期値は「2」ですので、シート「4月」のデータは2行目に貼り付けられます。
それ以降は、シート「集計」の一番下に貼り付けることになりますので、データを数えて、そのデータ数+1の位置へ貼り付けていきます。
たとえば、シート「5月」を貼り付ける位置は次のように考えてください。
・シート「集計」にシート「4月」のデータを貼り付ける
・シート「集計」のデータ数は、「37」
→ Shuukei_cell = Range(“a” & Rows.Count).End(xlUp).Row
スクリーンショット 2013 09 15 17 53 13

・37+1=38行目にシート「5月」のデータを貼り付ける

 

⑥各シートの2行目からLast_rowまでを貼り付けて、シート「集計」のA列のShuukei_cell+1行目に貼り付けます。
w.Rows(“2:” & Last_row).Copy Range(“a” & Shuukei_cell + 1)

+1としないと、4月の最終行に5月のデータを貼り付けてしまいます。

以上の処理をシートの数だけ繰り返して完了です。
4月から3月のデータが瞬時に集まります。

 

 

Excelでは、その後の選択肢が増えるようなしくみをつくる

前回、前々回のように合計値だけを集める方法でも十分な場合は多いでしょう。
しかし、合計した後に内容をチェックする場合、別の角度から集計する場合、会計ソフトへ各データを取り込む場合には、不便です。

今回の方法ではすべてのデータが1枚のシートに集まりますので、ピボットテーブルや関数で処理をしやすく、チェックもしやすいです。
シートをいちいち切り替えてチェックするのは大変ですからね。

Excelでは、どんな用途にも使えるように、その後の選択肢が増えるように集計、又はデータを準備しておくべきです。

 

スクリーンショット 2013 09 15 17 51 01

サンプルはこちらです。
EX-ITサンプル 複数シート集計マクロ 全データ





【編集後記】
昨日は午前中にタスク管理塾の開催、午後はラン仲間と30kmラン。
お台場をスタートして、葛西臨海公園、ディズニーランドまでの15kmを往復しました。
ゴール後は、大江戸温泉物語でお風呂に入り、居酒屋で打ち上げ。
このくらいテンション上がるコースじゃないと30kmはきついです^_^;

  • URLをコピーしました!