どうも! そこらへんの社会時です!
今回は、このように複数シートのデータを1枚のシートに集計するマクロを作成してみました。
(1番左のシートが集計シートで、真ん中と右のシートは集計されるシートになります。)

実際にマクロを動かしてみた動画は下記になります。
最後までこの記事を読んで頂くと下記のマクロを記載できるようになります。
STEP1:まずは1枚のシートのみを集計してみる
下記のマクロを実行すると無事、集計シートに集計することができました・・・・
ですが・・・このやり方だとシートが数十枚あった場合、すごく大変だと思ったので
別のやり方を考えてみました!
Sub エクセルシート集計()
Sheets(“集計”).Range(“B3”).Value = Sheets(“東京”).Range(“B2”).Value
シート(東京)のB2セル を シート集計のB3セルに記載する
End Sub
STEP2:まずは1枚のシートのみを集計してみる(シートのインデックス指定)
STEP1のやり方だと、作業量が増えてしまうのでその改善方法を探していたら、
下記の記事を見つけたので、それを参考にシートのインデックス指定をやってみました!

実際に記載したマクロがこちらになります。
Option Explicit
Sub エクセルシート集計()
Sheets(1).Range(“B3”).Value = Sheets(2).Range(“B2”).Value
シート2枚目のB2セル を シート1枚目のB3セルに記載する
Sheets(1).Range(“C3”).Value = Sheets(2).Range(“C2”).Value
シート2枚目のC2セル を シート1枚目のC3セルに記載する
End Sub
STEP1 と STEP2の違いをお分かり頂けただろうか?
STEP2:シート指定方法⇒Sheets(“シートの順番”)
STEP2のやり方ならば、for~Nextを使えばあとは連続で処理してくれるはずなのでSTEP3で実際やってみたいと思います!!
STEP③:For~Next関数を用いて自動化してみる
実際のマクロは下記になります。
Option Explicit
Sub エクセルシート集計()
Dim i
関数iを宣言
For i = 2 To 8
iを2~8繰り返す
Sheets(1).Cells(i + 1, 2).Value = Sheets(i).Range(“B2”).Value
i番目のシートのB2セルを1番目シートの(i+1 , 2)セルに記載する
Sheets(1).Cells(i + 1, 3).Value = Sheets(i).Range(“C2”).Value
i番目のシートのC2セルを1番目シートの(i+1 , 3)セルに記載する
Next
End Sub
いかがだったでしょうか?
そんなに難しい文も使っていないため、「意外と簡単!」と思えたのではないだろうか?
(2週間前の私なら・・・ちんぷんかんぷんでしたが・・・)
このようにExcelマクロは業務改善の可能性を秘めていいるので
ぜひ、一緒に学んでいきましょう!
コメント