(有料note公開)Excelファイルのデータ結合ツールを作成しました

Excel マクロ、VBA

スポンサーリンク

はじめに

複数Excelファイル(1ブック1シートと想定)の、各シート3行目以降を1つのExcelブックに結合したいという場合、通常は手作業でやっても問題ない作業です。

例えば下図なら、タイトル行を除くデータは3行目から始まっています。
これのタイトル行=2行目までは共通なExcelファイルが複数あります。

その2行目の下に、各Excelファイルの3行目以降のデータを一まとめにして結合したものを作成したいということです。
5個のExcelファイルのデータ行数が10行ずつだとすると、50行のデータをA3セル以降に貼り付けたファイルを新規作成するということです。

この作業は通常は、各Excelファイルを普通に開いてコピー・(値のみ)貼り付けをするだけでも問題ないレベルです。

しかし最近、その作業を何度もやる機会が生じ、何度もファイルを開いたりコピペしたりするのが面倒に感じてきました。

そこで今回、マクロでその結合処理を実行するExcelツール(以下、「結合ツール」といいます)を作成し、有料noteに公開しました。

Excelファイルのデータ結合ツールを作成しました(100円)|shota_Excellent|note
こんにちは。Excelファイルが複数ある時に、それらを単純に結合するツールを作成してみました。 ファイルの内容説明については、noteの使い方に不慣れなこともあってこちらにまとめて書きましたので、確認いただければと思います。 https://excel-excellent-technics.com/excel-vba-note-mergedatas-7969 もし購入いただけますならば、以降の有料記事より、よろしくお願いします。

別にもともと有料公開するつもりはなくて、簡単にツールを作ってソースコードをいつも通りブログ記事として公開する予定でした。
しかし意外に複雑になり、ブログ記事で解説しきれるレベルではなくなったので、noteの投稿初体験も兼ねて有料noteにて公開してみることにしました。

前述の通り、普通なら手作業でも問題ない作業でしょうし、勿体付けるようなレベルのマクロでもありません。
有料noteの最低料金の、100円で公開してみました。

有料noteの公開内容

今回公開するnoteの有料部分には、結合ツールの保存フォルダのURLと、同ツールを開く際のパスワードを載せています。
また、ツールのテスト用に使うことを想定した、ダミーの個人情報Excelファイルもフォルダ内に3つ保存しています。

操作方法等

それでは、今回公開するツールの操作方法・動作イメージなど説明を書いていきます。
長ったらしいですが、読まなくても大体使えるかとは思います。

想定条件など

たとえばExcelファイル「データ001.xlsx」~「データ005.xlsx」まで(以下、「対象ファイル群」という)が1つのフォルダに保存されているとします。それらには

  • 1つしかシートが無い。
  • 各シートについて、データの内容は異なるが、列数・列名などの基本情報は全て同じで、データベースとしての形にまとまっている(途中に空白行があったりはしない)。

と想定します。
シートに計算式が入っていても良いですが、基本的には入っていないことを想定します。

その対象ファイル群について、各ブックにおけるシートの3行目以降のデータを、1つのExcelファイルに結合し保存するといった用途に使用します。

設定・操作方法

当ファイル「実行」シートの各セルに、次のように設定を行います。

  1. B1セルに、データ開始行の「3」を入力。
  2. B2セルの選択肢から、保存するExcelファイルの形式を「xls」「xlsx」「xlsm」と選ぶことができます。
    それぞれ、Excel2003形式、Excel2007以降形式、Excel2007以降(マクロ入り)形式です。空白なら「xlsx」がセットされます。
  3. B3セルに記入した名前に、現在時刻を付してファイルを保存します。
  4. B4セルで、01(値のみを結合する簡単で高速な処理)か、02(セルを書式など含め丸ごとコピーペーストする処理)かを選択します。空白なら「01」をセットします。

以上の情報をセットしたら「データ結合」ボタンを押して下さい。
Excelファイルを選択する画面(以下、「ダイアログ」という)が出てくるので、対象ファイル群を複数同時に選択し「開く」を押せば、処理が実行されます。

処理イメージ

次のような例の、処理結果イメージを示します。

「C:\tmp」フォルダに対象ファイル群「データ001.xlsx」~「データ005.xlsx」が保存されていて、ダイアログでそれらを同時選択する。ただし最初に選択されているファイルは「データ001.xlsx」ファイルだとする。

次の通り設定内容をセットしておく。

  1. B1セル「3
  2. B2セル「.xlsm」
  3. B3セル「結合」
  4. B4セル「01:値のみ(高速)」

そして、2020年02月01日15時30分45秒に処理実行したとする。

すると、
C:\tmp\結合_2020年02月01日15時30分45秒.xlsm
のファイル名で、対象ファイル群の各シート3行目以降のデータが結合されたものが保存されます。

ただし処理タイプ「01」にしているので、値のみに直してデータが結合されます。
セルの色や数式など、セルを丸ごとコピーし結合したい場合は処理タイプ「02」を選択して下さい。

この結合の際には、ダイアログで最初に選択された「データ001.xlsx」ファイルを基本ファイルとします。
同ファイルの最終行の下に、他ファイルの3行目以降のデータを貼り付け結合して、それに名前を付けて保存する方式で保存します。

以上となります。もしご興味を持ち購入いただけたら、嬉しい限りです。

Excelファイルのデータ結合ツールを作成しました(100円)|shota_Excellent|note
こんにちは。Excelファイルが複数ある時に、それらを単純に結合するツールを作成してみました。 ファイルの内容説明については、noteの使い方に不慣れなこともあってこちらにまとめて書きましたので、確認いただければと思います。 https://excel-excellent-technics.com/excel-vba-note-mergedatas-7969 もし購入いただけますならば、以降の有料記事より、よろしくお願いします。

スポンサーリンク