複数のエクセルファイルを1つのブックにまとめるVBA【 設定方法を紹介】

 

複数のエクセルファイルを1つのブックにまとめたい。いい方法はないの?

 

こんな疑問にお答えします。

 

この記事では、複数のエクセルファイルを1つのブックにまとめるVBAの使い方、導入方法について詳しくご紹介しています。

 

Right Caption

悩んでる人

VBA未経験者の私でも導入できるの?

 

安心してください。

 

VBA未経験の方でも「複数のエクセルファイルを1つのブックにまとめるVBA」を導入できるように、

実際にVBAを導入する画面を使って解説を行っています。

 

コピペして使えるサンプルコードも掲載しているので手順に沿って作業するだけで「複数のエクセルファイルを1つのブックにまとめるVBA」を導入することが可能です。

 

さらに、記事の最後では「複数のエクセルファイルを1つのブックにまとめるVBA」が設定されたエクセルファイルをダウンロードするサイトをご紹介しています。

ダウンロードするだけで「複数のエクセルファイルを1つのブックにまとめるVBA」を利用することができるので、

VBA未経験の方、本業が忙しくVBAの導入に時間を費やすことができない方におすすめです。

 

 

 

 

広告

複数のエクセルファイルを1つのブックにまとめるVBAとは?

 

複数のエクセルファイルを1つのブックにまとめるVBAとは、指定したブックのシートをコピーして、1つのブックに集約するプログラム!のことです。

 

下記の動画では、複数のエクセルファイルを1つのブックにまとめるVBAの処理が解説されています。

エクセルファイル数やシート数がいくつあっても一瞬で1つのブックに情報を集約することができます

 

実際にVBAを使って複数のエクセルファイルを1つのブックにまとめた処理を実行した場面がこちら

 

約16シート分の情報を一瞬で集約することができました。

 

指定したエクセルファイルの全シート情報を集約するVBAになっているので、シート数が10個だろうが100個だろうが一瞬で1つのブックに集約することができます

 

「複数のエクセルファイルを1つのブックにまとめるVBA」は次のような悩みを抱えている方におすすめ

 

  • 毎日もしくは毎月という頻度でシートのコピペ作業をしている
  • 職員全員の勤怠表の集計を手作業で行っている
  • 単純なコピペ作業を何時間もかけて手作業で行っている

 

VBAを導入してからルーティーン作業に費やす時間が激減!!

 

Left Caption

ガッツポーズの人

別の仕事に専念することができるようになりました。

 

今まで当たり前と思い込んでいた作業がとんでもなく効率の悪い方法だったと全員が認識し、今ではシートのコピペ作業はVBAを使って一瞬で処理することが当たり前になっています。

 

複数のエクセルファイルを1つのブックにまとめるVBAの使い方

 

複数のエクセルファイルを1つのブックにまとめるVBAの使い方をご紹介します。

VBA未経験者の方でも簡単に扱える仕様になっているので是非チェックしてみてください。

 

使い方① ブックの指定

 

上図のようにB3セル~B20セルに、集約したいシートが保存されているブックの保存場所を記入してください。

最後に記入するブックの名前には、拡張子までしっかり記載することに注意が必要です。

 

使い方② 実行ボタンをクリック

 

 

使い方としてはたったこれだけ。

 

ブックの場所を記入 → 「実行」ボタンを押下

 

 

Left Caption

ガッツポーズの人

めちゃくちゃ簡単ですよね

 

これならエクセルが苦手な方、VBA未経験の方でも簡単にVBAを使って複数のエクセルファイルを1つのブックにまとめることができるはずです。

 

 

実行結果がこちら

 

「サンプル1.xls」と「サンプル2.xls」内にあるシートを一瞬で1つのブックにまとめることができました。

 

このVBAを使って約50シート分の集約を行ったとき、VBAの処理が完了するまで1分程度時間がかかりましたが問題なく集約することができました。

 

 

複数のエクセルファイルを1つのブックにまとめるVBAの導入方法

 

複数のエクセルファイルを1つのブックにまとめるVBAの導入方法を詳しく説明していきます。

VBA未経験の方でも手順通り設定すればVBAを導入することができるはずです。是非挑戦してみてください。

 

導入方法① シートの設定

 

上図のように「設定」シートを作成します。

 

B3セル~B20セルの背景色を白、それ以外は黄色に設定

これは、ブックの場所を記載するセルがB3セル~B20セルであることをわかりやすくするためです。

 

今回はB3セル~B20セルの情報を読み取るコードにしていますが、業務内容に合わせて変更することも可能です。

 

次に、シートの名前を「設定」にしてください。

シートを区別するVBAが設定されているので、シート名を「設定」にしなければ正常に動作しません

次のようなエラーが表示されてしまいます。

 

シートを区別するVBAについてもっと詳しく知りたい!と言う方は、下記のシート名を区別するVBAについて解説されている記事を参考にしてください。

 

 

Left Caption

ガッツポーズの人

シート名を区別するVBAはいろんな効率化VBAに応用できるので是非使い方をマスターしてください

 

 

導入方法② VBAの作成

下記の手順に沿ってVBAの設定を行ってください。

 

VBA編集画面を開き、標準モジュールを作成する

 

「Module1」を選択し、コードを記入する

 

サンプルコード


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」にコピペしてお使いください。

 

ボタンの作成

 

 

「ボタン」に作成したマクロを登録

 

 

ボタン上で「右クリック」 → 「マクロの登録」 → 「テスト」 → 「OK」で、

ブックを指定してシートを集約するVBAをボタンに設定することができます。

 

表示している「ボタン」のテキストを「実行」に変更する方法は、「ボタン」の上で、「右クリック」→「テキストの編集」でテキストを変更することが可能です。

 

 

 

これで「複数のエクセルファイルを1つのブックにまとめるVBA」の導入は完了です。

B3セル~B20セルにブックの場所を記入し、ボタンを押下すればVBAが実行されて情報を集約することができます。

 

 

複数のエクセルファイルを1つのブックにまとめるVBAの解説

 

複数のエクセルファイルを1つのブックにまとめるVBAは以下のような流れでプログラムが実行されます。

 

  1. 指定したブックを開く
  2. ブック内の全シートをコピー
  3. VBAが設定されているブックに貼り付け
  4. 指定したブックを閉じる
  5. 1~4の繰り返し

 

大きく分けて上記5つの項目で構成。

 

完成したVBAの動きを見ると複雑で難しいと感じるかもしれませんが、項目を分けて考えてみると複雑なVBAは一切使われていません

 

Left Caption

ひらめく人

上記のVBAの流れに意識しながらサンプルコードを確認すると理解しやすい

複数のエクセルファイルを1つのブックにまとめるVBAに使われている主なVBAがこちら

  • シートとブックを区別するVBA
  • 指定したブックを開く・閉じるVBA
  • ブック内の全シートをコピーし別のブックに貼り付けるVBA

 

これら3つのVBAを組み合わせることで「複数のエクセルファイルを1つのブックにまとめるVBA」が作られています。

 

シートとブックを区別するVBA

サンプルコードの中で、シートとブックを区別するVBAが使われている部分がこちら

Dim Abook As Workbook
Set Abook = ActiveWorkbook
Dim Ash As Worksheet
Set Ash = Abook.Worksheets("設定")

Dim Bbook As Workbook
Set Bbook = ActiveWorkbook

 

VBAが設定されているブックを「Abook」、「Abook」の「設定」シートを「Ash」、ブックの場所を指定して開いたブックを「Bbook

という変数で宣言しています。

 

このような変数でブックやシートを区別することで、別ブックの別シートに情報を転記することが可能となります。

 

下記の記事では、別シートに情報を自動反映させるVBAの作り方を詳しく解説しています。

 

 

併せてチェックしてみてください。

 

指定したブックを開くVBA

サンプルコードの中で、指定したブックを開くVBAが使われている部分がこちら

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

 

1行目から7行目では、B3セルからB20セルに記入されたブックの場所を「exfile」という変数に格納。8行目で変数「exfile」を開く

というプログラムになっています。

 

開いていない別のブックを自動編集したい!ときによく利用されるVBAなので是非使い方をマスターしてみてください。

 

 

ブック内の全シートをコピーし別のブックに貼り付けるVBA

サンプルコードの中で、ブック内の全シートをコピーし別のブックに貼り付けるVBAが使われている部分がこちら

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)のシート数をカウントし、For~Next(繰り返し処理)を使って1シートから最後のシートまでを繰り返す

というプログラムです。

 

開いたブックのシート数がわからなくても問題ありません。

 

シートの数量が変動しても自動的に対応できるのでいろんな業務に応用することが可能です。

 

カウント関数とFor~Next(繰り返し処理)の組み合わせはよく利用されるVBAなので是非使い方をマスターしてみてください。

 

 

VBA未経験者が「複数のエクセルファイルを1つのブックにまとめるVBA」を導入する方法

 

この記事で紹介されている「複数のエクセルファイルを1つのブックにまとめるVBAの導入方法」を見たけどよくわからない!挑戦してみたけどVBAが実行されない!

なんとしても「複数のエクセルファイルを1つのブックにまとめるVBA」を使って業務の効率をアップさせたいのにどうすればいいの??

 

なかなかVBAを導入できない方でもスムーズにVBAが導入できるようになる方法があります。

 

その方法とは、

  1. サンプルコードを自分で設定できるくらいの基礎知識を身に付ける
  2. マクロの開発を専門家に依頼する

です。

 

この2つの方法について詳しくご紹介していきます。

 

基礎知識を身に付けてマクロを導入する

VBAはネットや参考書で多くの情報が発信されているので、基礎的な情報からすぐ業務に役立てることができる情報を簡単にゲットすることができます。

 

「こんな処理をしたい!」という悩みをピンポイントで簡単に解決することができる

ということです。

 

そのため、ある程度基礎知識を身に付けるだけで実践向けのマクロをバンバン導入することができるようになります。

 

実際に私は、本格的にVBA学習を初めて1ヶ月くらいで実用性の高いマクロを開発できるようになりました。

 

大事なことは、

VBAを使って何をしたいのか明確なビジョンを持つこと!

そして、現状のレベルに合った教材で勉強をすること!

この2点です。

 

「あんなことがしたい!」「こんな処理を自動化したい!」という想いを持ちながらレベルに合った教材で勉強することで、

数日で実務向けのマクロを作成することができるようになります。

 

Left Caption

ガッツポーズの人

実際に私がそうでした!!

 

VBA未経験のとき私が行った勉強方法が、

初心者向けの参考書を眺める!

です。

 

勉強するぞ!と意気込んで勉強するのではなく、

こんなことができるのか!!と眺めるくらいが丁度いいと個人的に考えています。

 

「こんなマクロを今の業務に導入したら働かなくていいじゃん」

「このマクロがあれば職場で問題になっている処理を自動化できるじゃん」

 

こんな感じで参考書を眺めているうちに自分で簡単なVBAを作れるように。。

今では頭の中で思い描いた処理を自由にコード化するくらいにまで上達しました。

 

プログラミングは難しくて自分には絶対ムリ!!と思い込んではいけません。

特にVBAに関しては初心者向けの情報をゲットしやすいプログラミングなので比較的勉強のしやすいものだと思っています。

 

下記の記事では、VBA未経験者におすすめのVBA参考書をいくつかご紹介しています。

 

 

スラスラと読み進めることができて、「こんなことやってみたい!!」と感じる内容になっています。

 

プログラミングって難しそう!自分には絶対ムリ!!と考えている方は是非参考にしてみてください。

 

参考書と併せて、マメBlogで発信しているVBA学習に関する情報を発信しているメルマガも参考にして頂けると嬉しいです。

  • 仕事で使えるマクロの作り方
  • 効率の良い学習方法
  • マクロを使えるようになって変化した仕事

 

プログラマーではない、ただエクセルが好きな私がVBAに関するお得な情報を発信しています。

 

近頃はメルマガ読者様から、「こんなこと自動化したい!」「こんなような処理ってVBAで作るの難しい?」などメッセージを頂けるようになりました。

メルマガを通していろんな情報交換ができればと思っています。

 

Left Caption

ひらめく人

VBAに興味のある方はまずメルマガに登録してお得な情報をゲットしてみてください。

 

 

マクロ開発を専門家に依頼する

VBA未経験者がVBAを導入する最も簡単な方法は、

専門家にマクロ開発を依頼する

です。

 

どんな業務内容なのか、どのような処理を自動化したいのか、を伝えるだけで最適なVBAを開発・設定してくれます。

 

この記事で紹介している「複数のエクセルファイルを1つのブックにまとめるVBAの導入方法」を参考に、自身のエクセルにVBAを設定することは可能ですが、

VBA未経験者にとって、いきなりコードをコピペして編集することは難易度高めだと思います。

 

特に、「ブックを開くVBA」「全シートをコピペするVBA」はVBA未経験者にはちょっとイメージのつきにくいVBAかなぁと思います。

 

マクロの開発依頼サービスを利用すれば、VBA未経験者でもVBAが設定されたエクセルファイルを貰うことでVBAの導入が可能です。

 

専門家がVBAを作っている間本業に専念することができるので、最も効率的なVBA導入方法だといえます。

 

VBAの開発依頼には、以下のような方法があります。

 

  • クラウドソーシングサイトを利用する
  • プログラミング開発会社に依頼する
  • 個人で受注している方に依頼する

 

個人への依頼としては、この「マメBlog」でもマクロ開発依頼を承っております。

 

複数のエクセルファイルを1つのブックにまとめるVBA以外に、「写真の貼付けVBA」や「転記VBA」、「スケジュール管理VBA」などの開発実績があります。

マメBlogの特徴がこちら

 

  • 安価
  • スピード納入
  • 業務内容に合わせた柔軟なマクロ開発

 

興味のある方は下記のサイトをチェックしてみてください。

 

 

 

複数のエクセルファイルを1つのブックにまとめるVBAのダウンロード

下記のサイトでは、この記事で紹介している「複数のエクセルファイルを1つのブックにまとめるVBA」をダウンロードしてお使いいただくことが可能です。


使い方はこの記事でも説明していますが、

情報を集約したいエクセルファイルの保存場所を記入し、実行ボタンを押下する

たったこれだけです。

 

めちゃくちゃシンプルで使いやすいVBAになっているので是非お試しください。

 

業務内容に合った処理に変更したい!こんな機能を追加してより便利にしたい!

など質問、要望があればお気軽にお問合せください。

複数のブックをまとめるマクロは仕事でかなり使える!

 

複数のエクセルファイルを1つのブックにまとめるVBAはいろんな業務に応用して利用することが可能です。

 

私の職場では以下のような業務でVBAを利用しています。

  • サーバーの整理整頓作業
  • 職員一人一人が管理している勤怠表の集計作業
  • 担当者が管理しているスケジュール管理表の集計作業

 

Left Caption

ひらめく人

手作業だと手間と時間がかかる作業を一瞬で処理することが可能になるので大好評

 

複数のエクセルファイルを1つのブックにまとめるVBAは実際の業務でかなり使えるマクロなので自由に扱えるようにしておきましょう。