複数のエクセルファイルを一つにまとめるVBA【使い方とダウンロード】
エクセルファイルをいくつも開いて作業をしている
ブックからブックへのコピペ作業が多い
内容が似たようなエクセルファイルがいくつも存在している
こんな環境でエクセル業務をしている方におすすめな「複数のエクセルファイルを一つにまとめるVBA」の概要と使い方をご紹介します。
「複数のエクセルファイルを一つにまとめるVBA」を使えば以下のような処理を自動化することが可能です。
複数のブックで管理しているスケジュールを一つのブックにまとめる
複数のブックで管理しているデータを一つのブックにまとめて集計する
各々が管理している勤怠表の情報を集計する
人数が多い職場の場合、
各々がエクセルファイルを作成してしまいデータ管理が難しくなってしまう
という問題が発生してしまいがちです。
そんなとき「複数のエクセルファイルを一つにまとめるVBA」を利用すればバラバラになっているエクセルファイルのデータを一瞬で1つのエクセルファイルにまとめることができます。
他のブックを開いてコピペ、閉じて次のブックを開いて、、、
こんなようなコピペ作業は意外と手間のかかる作業で編集ミスが発生しがちです。
コピーするシートが1つならVBAを使う必要はありませんが、まとめる情報が多ければ多いほどVBAを使って自動化した方が作業効率が全然違います。
このnoteでは、複数のエクセルファイルを一つにまとめるVBAについて詳しく解説しています。
複数のエクセルファイルを一つにまとめるVBAとは
「複数のエクセルファイルを一つにまとめるVBA」とは、
指定したブックにある全てのシートをコピーして、1つのブックに集める!
という処理を行います。
「複数のエクセルファイルを一つにまとめるVBA」の処理の概要をサンプル事例を使ってご紹介します。
サンプルとして、個人が管理する勤怠表の情報を1つのエクセルファイルにまとめるという処理をVBAを使って自動化します。
マクロが設定されたブックの「設定」シートがこちら
B2セル~B20セルまでに「情報を集約したいエクセルファイルが保存されているの場所」を入力します。
ファイルの保存場所を入力し、「実行ボタン」でマクロを実行すると下記のようになります。
B3に入力されたエクセルファイの情報が全てシートして集約されています。
実際に集約されたシートの中身がこちら
指定した「超勤整理簿のエクセルファイル」にある13シートを一瞬で集約することができました。
これが、複数のエクセルファイルを一つにまとめるVBAの処理です。
複数のエクセルファイルを一つにまとめるVBAの導入方法
上記でご紹介した「個人が管理する勤怠表の情報を1つのエクセルファイルにまとめるVBA」を参考に導入方法をご紹介していきます。
1.様式の設定
様式は上図のように「B3セル~B20セルを空けておく」「シート名を設定にする」2つに注意してください。
2.VBAの設定
上図の手順でVBAの設定は完了です。
3.サンプルコード
Sub テスト()
Application.ScreenUpdating = False
Dim Abook As Workbook
Set Abook = ActiveWorkbook
Dim Ash As Worksheet
Set Ash = Abook.Worksheets("設定")
For k = 3 To 20
Dim exfile As String
If Ash.Cells(k, 2) = "" Then
Exit Sub
Else
exfile = Ash.Cells(k, 2)
End If
Workbooks.Open Filename:=exfile
If Err.Number > 0 Then
MsgBox "ファイルはすでに開かれています。"
Exit Sub
End If
Dim Bbook As Workbook
Set Bbook = ActiveWorkbook
For i = 1 To Bbook.Worksheets.Count
Bbook.Worksheets(i).Copy After:=Abook.ActiveSheet
Abook.ActiveSheet.Name = Abook.ActiveSheet.Name & "(" & Bbook.Name & ")"
Next i
Bbook.Close
Next k
End Sub
このサンプルコードを上記手順に従ってModule1にコピペしてください。
4.ボタンの作成
上記の手順でマクロを登録を行ってください。
あとはボタンをクリックするだけで「複数のエクセルファイルを一つにまとめるVBA」を利用することができます。
複数のエクセルファイルを一つにまとめるVBAの導入事例
複数のエクセルファイルを一つにまとめるVBAは、
以下のような作業効率を2倍、3倍にアップさせることが可能です。
サーバー内のデータ整理作業
職員全員の勤務表情報を集約する作業
別ブックの情報を参照しながら書類作成する作業
エクセルをメインに使っている職場なら他にもいろんな作業に応用することができるのではないでしょうか。
職員全員の勤務情報を集約する作業
サンプル事例でも紹介していますが私の職場では、
職場全員の勤務表情報を集約する作業
で複数のエクセルファイルを一つにまとめるVBAが利用されています。
「管理者は職員の勤務状況を把握しなければならない」という社内規定があるため、出勤日や超勤時間、年休取得数などの情報を集約する必要があります。
各職員が編集しているエクセルファイルを一つ一つ開いて確認していては、時間がいくらあっても足りません。
めんどくさすぎてチェックしなくなってしまいます。
そんなときに便利なのが、複数のエクセルファイルを一つにまとめるVBAです。
18個のエクセルファイルを指定できる設定になっているので、
18人分の勤務情報をいっきに一つのエクセルファイルに集約することができます。
VBAを導入していからチェック作業にかかる時間を大幅に短縮することができました。
サーバー内のデータ整理作業
勤めていた会社では頻繁に転勤させられるという社風だったので、
職場が変わると人によってデータの保存方法が異なりサーバー内のデータがグチャグチャになる
という問題を抱えていました。
いくらサーバー内のデータを整理整頓しても転勤によって人が入れ替わるとすぐにグチャグチャになってしまうので、本気でデータを整理しようなんて考える人がいませんでした。
このような問題を解決するため「複数のエクセルファイルを一つにまとめるVBAを導入することに。。
VBA導入後、サーバー内にあるエクセルファイルを定期的に整理整頓しようという体制に変えることができました。
ファイルの場所を指定するだけで全てのシートをコピペすることができるので、「年度」「作業種別」ごとにエクセルファイルをまとめることに。
ファイルをまとめた状況がこんな感じ
現在使われていない数十個のエクセルファイルをまとめることができました。
過去のデータを参照したい場合、シートを切り替えて該当する情報を探せばいいのでデータを探す作業の手間を減らすこともできます。
2つの導入事例を紹介してきましたが、複数のエクセルファイルを一つにまとめるVBAは他にもいろんな業務に応用することができます。
是非あなたの業務に合った使い方を編み出してみてください。
複数のエクセルファイルを一つにまとめるVBAの導入に難航している方は。。
「複数のエクセルファイルを一つにまとめるVBA」を導入したいけど、以下のような理由でVBAの導入が難航している方が多いのではないでしょうか。
やり方を確認したけど導入方法がわからない
本業が忙しくてVBAを導入する時間がない
そもそもプログラミングは苦手
こんな方はマメBlogのマクロ開発依頼サービスをご利用ください。
>>> マメBlogのマクロの開発依頼はこちら
業務内容に合わせた処理にアレンジをして「複数のエクセルファイルを一つにまとめるVBA」をご提供しています。
「こんな機能を追加したい!」「こんなことの自動化もできるの?」といった要望にも柔軟に対応可能。
まずはお気軽にマメBlogへご相談してみてはいかがでしょうか。
複数のエクセルファイルを一つにまとめるVBAのダウンロード
この記事で紹介している「複数のエクセルファイルを一つにまとめるVBA」をダウンロードしてお使いいただけます。
複数のエクセルファイルを操作するような業務をしている方は是非使ってみてください。
この記事が気に入ったらサポートをしてみませんか?