複数ファイルからデータ収集を行うエクセルVBAソフトの作り方

datasyusyueyecatch

こんにちは、じゅんぱ店長(@junpa33)です。

 

今回から、すでにエクセルで作成した資料を利用する時のための「ちょっと便利なVBA」について紹介します。

 

エクセルで作成された複数のファイルから、それぞれ必要な特定のデータを収集することのできるツールです。

特に、同一の様式(テンプレート)で作成されていれば、地域別とか時系列などと、

「ある同じ項目のデータ」だけを抜き出して利用したいときに便利にお使いいただけると思います。

例えば、

月別に作成された売上実績のエクセルブックで、その中は日別シートになっています。

シート内のタイトル行には「販売拠点」、タイトル列には「販売品目」

各セルにはそれぞれの実績数値が記述されている

を想定します。

「〇〇〇店で、年度通期の毎週月曜日の◇◇商品の販売実績をまとめて比較したい。」

といった場合に利用することが出来ます。

データファイルの条件

  • データとなるファイルのフォーマットが同一であること。
  • テンプレートシートが同じ。シート名の共通ルール化、データ項目の配置

データ抽出先のそれぞれのエクセルブックでの、「シート名」と項目の「データ位置(セル番地)」の共通性に基づいて、データ抽出を行っていきます。

 

完成品はこちら↓でダウンロードすることでソフトを入手することも出来ます。


.

これからの記事をお読みいただくことで、ご自分で作成しVBAコードを変更して、このソフトをカスタマイズすることが出来ます。

完成品はこちら↓でダウンロードすることでソフトを入手することも出来ます。

 

ただし、こちらの方はVBAコードを保護していますので、使う側でのVBAコードのカスタマイズを行うことはできません。

 

ここの記事説明とダウンロードしたソフトで、早々に利用していただくことが出来ます。

 

“複数エクセルファイルのデータ収集VBA1.1” をダウンロード datasyusyu1.1.zip – 2515 回のダウンロード – 26 KB

このソフトはご自分で業務でお使いいただくのはフリーですが、

転載や転売については許可しておりませんので、ご使用にならないよう固くお断りいたします。


 

複数あるエクセルファイルからデータ収集をしたい

 

顧客別や月別など個別に纏めたエクセルのファイル。

この中のデータ数値を、同じ項目ごとに取り出して集計していくという作業は、普通に多い作業ではないかと思います。

真面に正面から作業を始めると ”とんでもなく時間がかかる” 業務効率的に言うと「とんでもなく非効率」な作業になります。

この非効率を解決するためには、エクセルVBAを使って自動処理をさせるのがベストな方法です。

幾らエクセルワークシート関数を知っていても、作業能率的にはチョッと厳しいんじゃないかと思います。

 

また一度、このVBAを作成すれば、その後はこれを再利用していくことが出来ます。

 

データを収集するエクセルVBA うまく使う条件

 

まず、それぞれ、どのエクセルBOOKのどこの部分のデータを取り出すかを指定しなければいけません。

この時、全く様式がバラバラの資料であるとすれば、一つのデータを取り出すために一回ずつ条件指定をしないといけなくなります。

そういった環境であれば、ほとんど効率的なものにはなりません。

 

うまく収集するためにはそのファイルが同じルールで纏められていること

 

繰り返し作成していく資料データは、同一の様式(テンプレート)で作成されていることが重要です。

様式的にはそれぞれ独自な形式になっていても大丈夫です。

要は効率よく作業をするには、

取り出したいデータそれぞれが、エクセルファイルの目的シートの同じセルの番号(番地)に書かれていることが重要です。

 

実際には大体が、何らかのテンプレートで統一されたファイル様式になっていることが多いかとは思います。

ですので、ほとんどのケース、このことはあまり問題にはならないかとも思います。

 

ただ、ご注意いただきたいのは、ファイルの中の「シート名」についてです。

大文字小文字、半角全角すべて統一しなければなりません。

一字でも違えば、違うシート名とエクセルVBAコードが判断してしまいます。

読み取り出来るようにVBAコードを組めばいいとは言うものの、

その前に、作ったテンプレートは一々細かくは改変せず、その今ある通りそのまま使うように考えた方が後々楽だと思います。

特にこのVBAの自動化は資料の形式がみんな同じ(共通)であることが重要です。

 

資料データとなるファイルはフォルダ別分類をしておきます

 

一つのまとめ資料を作るのに、そのための資料となるエクセルファイルを「同じフォルダ」に入れておきます。

例えば、

見積書フォルダ

ーーー 2020A店見積.xlsx 、A店(フォルダ) --- 01見積.xlsx 、02見積.xlsx、03見積.xlsx、04見積.xlsx・・・

ーーー 2020B店見積.xlsx 、B店(フォルダ) --- 01見積.xlsx 、02見積.xlsx、03見積.xlsx、04見積.xlsx・・・

ーーー 2020C店見積.xlsx 、C店(フォルダ) --- 01見積.xlsx 、02見積.xlsx、03見積.xlsx、04見積.xlsx・・・

の場合

 

  1. 見積書フォルダを、資料ファイルのピッキング先とすれば、
    2020A店見積.xlsx・2020B店見積.xlsx・2020C店見積.xlsxを参照して、指定位置からデータを取ってきます。
  2. A店(フォルダ)を、資料ファイルのピッキング先とすれば、
    01見積.xlsx 、02見積.xlsx、03見積.xlsx、04見積.xlsx・・・を参照して、指定位置からデータを取ってきます。

 

 

データを収集するエクセルVBAの操作概要

 

資料となるエクセルファイルからどのようなデータを取ってくるかを指定する必要があります。

 

そこで、

抽出(収集)データの「項目名」、表示されている「セル番号」 を指定します。

エクセルファイル内のどの「シート名」のシートから収集してくるかを指定します。

次に、

資料となるエクセルファイルが保存されている「フォルダ」を選択します。

 

あとは、

「抽出実行」を押せば各資料ファイルからのデータ取り出しを開始します。

結果表示は、

余計な作表はせずに、データの羅列の形式で一覧表示できるようにします。

この抽出データの一覧表につては、コピペやエクセル関数で集計などを行うことが出来るようにします。

 

データ収集するVBA概要のまとめ

 

今回から、それぞれのエクセルファイルから、今必要なデータ数値を取り出して一覧表示できるVBAを組み立てて行きます。

特に実務では、度々必要になってくるエクセル作業ではないかと思います。

この記事をお読みいただいたことを機会に、

WebからDLして利用いただくだけではなく、このVBAコードも同時に公開していますので、是非ご自分でチェックしていただければと思います。

作業する人それぞれにやり方が異なる部分でしょうし、「この様にしたい、あのように出来たら」ということも多いかと思います。

プログラムの動きを知っていれば、途中で動かなくなってもVBAコードを修正してリカバーすることができると思います。

これから作成していくエクセルVBAソフトは、

  • 収集(抽出)データ項目は1シート当たり5項目
  • 収集データの入ったファイルの代表的なものからシート名を自動表示する。
  • エクセルファイル内の収集可能シート数は無制限で収集するシートの選択可能
  • 収拾作業の収納フォルダーをダイアログで選択できる。

という様にしていきます。

では、次回記事からVBAコードの説明をしていきますのでよろしくお願いします。

 

次の記事に進むにはこちら↓です。

エクセルファイルからデータ収集。VBA取り出し条件の楽々設定方法

datasyusyueyecatch002 エクセルファイルからデータ収集。VBA取り出し条件の楽々設定方法

 

エクセルVBAの独習を始めるためのポイントについて vbastudyeyecatchエクセルVBAを独学で習得するためのポイントは?良書との出会いは重要 基礎知識習得のためのオンライン学習講座の参考記事 Udemy1eyecatchエクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
  今回の記事はここまでです。
最後までご覧いただき有難うございました。

 

複数ファイルデータ収集一覧
datasyusyueyecatch
こんにちは、じゅんぱ店長(@junpa33)です。 今回から、すでにエクセルで作成した資料を利用する時のための「ちょっと便利なVBA」について紹介します。 エクセルで作成された複数のファイルから、それぞれ必要な特定のデータを収集することので ...
続きを読む
datasyusyueyecatch002
こんにちは、じゅんぱ店長(@junpa33)です。 今回から、データ収集のためのエクセルVBAの解説をしていきます。 データ資料となるそれぞれのエクセルファイルから、必要な情報を取り出してくるエクセルVBAソフトの組み立ての中で、 まずは、 ...
続きを読む
datasyusyueyecatch003
こんにちは、じゅんぱ店長(@junpa33)です。 今回は、 先回作成した「抽出条件の入力表」に入力された内容で、資料となるエクセルファイルからデータを取得するVBAコードを組み立てます。 設定シートに表示された「抽出条件の入力表」で 「シ ...
続きを読む
こんにちは、じゅんぱ店長(@junpa33)です。 今回の内容は、次の利用のための「シートをクリア、リセットする」VBAコードについてです。 今回で、この「データを収集するエクセルVBAソフト」は完成です。 一つの作業終了で、ALLクリア・ ...
続きを読む
datasyusyueyecatch005
こんにちは、じゅんぱ店長(@junpa33)です。 前回までで作成しました「複数エクセルファイルのデータ収集VBA」について、 今回はこの「複数エクセルファイルのデータ収集VBA」ソフトの使い方を、 最初から説明していきたいと思います。 そ ...
続きを読む

 

業務効率を上げて行くためにエクセルVBAを使いだして、始めのうちに知っておきたい内容を纏めています。

vbaintfixeyecatch
エクセルVBA関数で、数値の整数部分だけを分離します。 整数値取得のFix関数でなくInt関数の使用の場合でも、 他の関数との組み合わせで解決することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回のテーマは、数値の整 ...
続きを読む
vbarndeyecatch
エクセルVBAのRnd関数で乱数を取得します。 実用のためにはコードに簡単な加工をする必要があります。特に乱数値の整数化とRandomizeは必須です。 6.5兆通りのパスコードの生成方法も解説しています。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbaroundupdowneyecatch
エクセルVBA 数値の切り上げ、切り捨てをするときには注意しなければいけません。 RoundUp関数とRoundDown関数を使う時に負の数が混在していると、そのままだと誤った計算結果になることがあります。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbaroundeyecatch
エクセルVBAでも数値を四捨五入したい時は、Round関数を利用することが多いです。 Round関数の使い方はワークシートと同様ですが、ただ大きな注意点があります。 ここではその注意点も含めて使い方の説明を行います。 こんにちは、じゅんぱ店 ...
続きを読む
vbamaxminaveeyecatch
エクセルVBAで、ワークシート関数 Max・Min・Averageを利用して最大値・最小値・平均を求めます。 「簡単で短いエクセルVBAコード組み立て」を目指す上では、ワークシート関数は強い味方です。 こんにちは、じゅんぱ店長(@junpa ...
続きを読む
vbainsteeyecatch
InStr関数・InStrRev関数は、文字列操作系の関数の中でも最重要です。 この関数により指定の文字(列)の存在位置が取得できます。 そしてそれを目盛基準として、文字列操作をすることもできます。 こんにちは、じゅんぱ店長(@junpa3 ...
続きを読む
vbareplaceeyecatch
エクセルVBAで使える関数にReplace関数があります。 Replace関数は検索の文字列を指定の文字列に置換したり、削除したり出来ます。 利用価値の高い関数です。使い慣れておきましょう。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbaselectcaseeyecatch
エクセルVBAで、必須の条件文。 その中の一つで、Select Case 条件分岐 ステートメントの使い方を説明します。 簡単なコード、可読性の向上が特徴のステートメントです。是非、知っておきましょう。 こんにちは、じゅんぱ店長(@junp ...
続きを読む
VBAValeyecatch
エクセルVBAのVal関数の使い方についてです。 「値を文字列型から数値型へ変換する」という機能があります。 データ型が不一致の場合、プログラムエラーでコード停止が発生することが良くあります。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
VBAStringeyecatch
エクセルVBA String関数の使い方についてです。 「文字を指定した数だけ並べることが出来る」という機能の関数です。 この関数を使えば簡潔なコード記述で実行することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回は ...
続きを読む
vbajoineyecatch
エクセルVBAでJoin関数の使い方について説明します。 文字列を接続する関数ですが、 配列変数で文字列を要素化した時にはこれを使います。 また「区切り文字」も自由に設定できます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回は ...
続きを読む
vbamideyecstch
エクセルVBAで文字列操作は、コード作成の中でも重要な部分です。 Mid・Right・Left関数は、その操作の中で重要な働きをする関数です。 文字列を切り出すこの関数の基本部分を説明します。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
vbatrimeyecatch
Trim・RTrim・LTrimは文字列の端にあるスペースを取り除きます。 ちょっとのことですが、取り込みデータにスペースが付いていることでのエラーは発見修正が結構厄介です。 注意が必要です。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
vbastrcstreyecatch
エクセルVBAで、Str関数とCStr関数に使い方とその違いについて説明します。 戻り値にちょっとした違いがあります。 使い方の違いでその後のコードの進行に影響が出ることがあり、なおざりにはできません。 こんにちは、じゅんぱ店長(@junp ...
続きを読む
vbaleneyecatch
Len関数の使い方ついて説明します。 エクセルVBAでプログラミングを行う時に、テキストデータを加工処理するには必須の関数です。 非常に有用な関数ですので、是非使えるようになっておきましょう。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
VBACheckBoxeyecatch
エクセルシートで使う場合の、2種類あるチェックボックスの設置と使い方の違いを解説します。 一見簡単そうですが、 単純でない使い方をしたい時は、設置方法と設定方法を工夫する必要があります。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
VBAOptionbuttoneyecatch
エクセルで書類を作成する時、項目を選択できるようにするのがオプションボタンです。 これには2種類あり、使い方にかかわる違いもあります。 詳しいオプションボタン設置方法と使い方のコツを解説します。 こんにちは、じゅんぱ店長(@junpa33) ...
続きを読む
vbamojisousaeyecatch
エクセルVBAコードで、ファイルの保存時に名前を付けて保存について、その時の年月日を付けたい時の設定方法についてです。 保存されたファイルがたくさん増えて行く中で、ファイルの判別で年月日を付けている(付けたいと思っている)人も多いでしょう。 ...
続きを読む
vbajyufukueyecatch
今回は、同じ項目を一つにまとめるためのエクセルVBAコードを紹介します。 多数銘柄の商品を複数の店で扱っている場合、商品銘柄集計表を作るには、商品銘柄の種類だけをリストにしないといけません。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbafolderdeleteeyecatch
今回は、不要なフォルダをサクッと削除するエクセルVBAコードを紹介します。 削除の仕方は2つあります。VBA自身の機能を使うことと、FSOの機能を使うことの2つです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、不 ...
続きを読む
vbadirkilleyecatch
今回は、フォルダに保存されている要らないファイルを削除するエクセルVBAコードを紹介します。 フォルダを開いて一つずつファイル名を確認して、ではなくて、コード実行一発でササッと完了します。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
vbachdireyecatch
エクセルVBAのステートメントで「ChDir(チェインジディレクトリ)」というのがあります。 少々地味感のあるステートメントですが、この使い方のポイントを説明いたします。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAの ...
続きを読む
vbafindeyecatch001
今回は、データの検索方法で、エクセルVBAでできるメソッドについてです。 「FindとFindNextメソッド」の使い方と最速理解のコードの組み立て方を説明したいと思います。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルの検 ...
続きを読む
今回も、エクセルVBAで利用できるワークシート関数についてがテーマです。 この記事では、データナンバーなどから、その必要な値や数値を抽出する「Vloolup関数」について使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbaindexeyecatch001
今回も、エクセルVBAで利用できるワークシート関数についてがテーマです。 この記事では、データリストから必要な値や数値を取り出してくる「Index関数」について使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセ ...
続きを読む
vbamatcheyecatch001
エクセルVBAで利用できる関数についてがテーマです。 今回は、データリストから必要な値や数値を取り出してくる「Match関数」について、使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAでよく使うワーク ...
続きを読む
vbahairetu3eyecatch
エクセルVBAで変数を利用するとき、二次元配列変数を知っていれば何かと便利なことがあります。 今回はそんな配列変数をより実際に近い例題で説明していきます。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAのプログラムでは、 ...
続きを読む
vbahairetu2eyecatch
エクセルVBAで配列を利用する時、それに関わる関数やステートメントを利用すれば、 より簡潔にコードを作成することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBA 配列を扱うときに利用できる関数とステートメント ...
続きを読む
vbahairetueyecatch
エクセルVBAで変数を利用するとき、複数の同じ型で変数を設定したいときがあります。 そんな時、出番となるのが配列変数ということです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAの1次元配列変数の使い方を説明します。 ...
続きを読む
vbabuttoneyecatch
エクセルVBAのプログラムを実行するのに、ワークシート上に設置したボタンのクリックでワンポチっとで行いたい。 そんなボタンの簡単設置方法を紹介します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、シートにマクロ(プ ...
続きを読む
vbasumeyecatch
エクセルVBAで、羅列された数値の集計作業をパパッと熟していきたいときがありますよね。 それを簡単に行える方法としてSUM関数があります。今回はこのSUM関数の使い方についてです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセ ...
続きを読む
vbainputboxeyecatch
エクセルVBAのプログラムで、利用者からの入力データを取り込んでコードを実行していくことがあります。 その簡潔な方法としてInputBoxがあります。今回はこのInputBoxの使い方についてです。 こんにちは、じゅんぱ店長(@junpa3 ...
続きを読む
vbalastcelleyecatch
エクセルVBAのプログラム作成で、入力データをその都度蓄積していく場合など、 既にデータの入っている最終セルの位置を調べたいという時が多くあります。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAのコード組み立てで、デー ...
続きを読む
vbawithstateeyecatch
エクセルVBAのコードの組み立てでは、視認性や可読性を上げるためにできるだけ記述を簡潔にしたいところです。 Withステートメントは、そういったコード記述を簡潔にする役割があります。 こんにちは、じゅんぱ店長(@junpa33)です。 エク ...
続きを読む
vbacleareyecatch
エクセルVBAでシートを再利用するために、一度内容すべてをクリアしたい時があります。 普通は、Clearメソッドを使ってクリア操作を行いますが・・・ こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAを組み上げる中で、シート ...
続きを読む
vbaoffseteyecatch
エクセルVBAで、セルやセルの選択範囲を移動させるのにOffsetプロパティがあります。 今回の「VBA最速で理解」は、この便利な「Offsetプロパティ」の使い方について説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エ ...
続きを読む
vbanameeyecatch
エクセルVBAで、アクティブセル、アクティブシート、アクティブブックという「現在参照中の・・・」というオブジェクトがあります。 今回の「VBA最速で理解」は、この「ActiveWorkbook」「ActiveSheet」「ActiveCel ...
続きを読む
vbaselacteyecatch
エクセルVBAで、そのコードを実行する先のオブジェクトに、フォーカスするためのメソッドに、「Select」と「Activate」があります。 今回は、このよく似た「Select」と「Activate」について説明します。 こんにちは、じゅん ...
続きを読む
vbavbekidoeyecatch
エクセルVBAを始めようとしたときに一番最初に戸惑うのが、「どうしたらVBAコードを書く表示画面になるのか?」だと思います。 今回は、この「どうしたら、その画面になるんだろう?」についての方法を説明します。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbamsgboxeyecatch
エクセルVBAでユーザーフォームを使わなくても、簡単なユーザーとのやり取りならメッセージボックスでも可能です。 今回は、この「ユーザーへのメッセージや選択肢を提示する」ユーザーフォームについての説明をします。 こんにちは、じゅんぱ店長(@j ...
続きを読む
vbadoloopeyecatch
以前の記事でも書いたように、エクセルを使った業務で、「ループの処理」コードは重要な実行処理部分です。 今回は、このもう一つの「ループの処理」である「実行回数が限定されないループ処理」を行うコードについて説明します。 こんにちは、じゅんぱ店長 ...
続きを読む
vbafoldereyecatch
エクセルを使った業務で、「作成したファイルの保存」は作業の最後に必ず必要な部分です。 今回は、この「作成したファイルの保存」を行うための重要部分。保存先フォルダをVBAで指定する方法を説明します。 こんにちは、じゅんぱ店長(@junpa33 ...
続きを読む
vbasengeneyecatch
エクセルVBAのコード組み立てで使う変数。「この変数を使いますよ!」というのが「変数の宣言」です。 今回は、この変数の宣言についてです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBA のコード組立ての中で、変数の宣言は ...
続きを読む
vbaifjyokeneyecatch
エクセルVBAのコード組み立てで最も必要な、最もよく使うメソッドの1つで「If~Then~Else」があります。 今回はこの「If~Then~Else」メソッドについて設定条件の絞り方のポイントを説明します。 こんにちは、じゅんぱ店長(@j ...
続きを読む
VBACopyeyecatch
エクセルVBAのコード組み立てで、よく使うメソッドの1つで「Copy」メソッドがあります。 今回はこの「Copy」メソッドの使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、ワークシートのコピーをを ...
続きを読む
VBAGotoeyecatch001
エクセルVBAのコードで、Gotoステートメントは嫌われ系のグループにはいっています。 それでも、GotoがあるのでVBAコード組み立てがスムーズに、楽に、なる事も多いと言うのも事実です。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
fornextirekoeyecatch
エクセルVBAのコード組み立てで、非常によく使うステートメントの一つにFor~Nextでのループ処理があります。 今回はこのFor~Nextステートメントの使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルV ...
続きを読む

 

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。