複数のExcelファイル内の特定セルのデータを統合する方法【Convert XLS】

本記事では、複数のExcelファイル(ワークブック)内の特定セルのデータを、1つのファイルに統合する方法をご案内します。

OCR ソフトで Excel に変換した後、表内の特定情報のみを再配置したい場合などに便利です。

目次

目的

複数の Excel ファイル(ワークブック)内にある、特定の列/行のみを新しいワークブックに統合します。

移行元 Excel ファイル(ワークブック)

今回は、3つのワークブックの表内(図)から「仕入れ元」と「合計」のデータを、1つのワークブック(FINAL.xlsx)に統合します。

ワークブック3つ
移行後のワークブック

統合後のワークブック

FINAL.xlsx

事前準備

入力フォルダ:C:\TEST\IN

移行したいデータを含むワークブック X.xlsx, Y.xlsx, Z.xlsx を同じフォルダ(C:\TEST\IN)に移動。

出力フォルダ:C:\TEST\OUT

統合先のワークブック FINAL.xlsx を作成し、見出し(仕入れ元や合計)や計算式などを入力。

(以下よりテスト用のサンプルファイルをダウンロードいただけます。)

ワークブック(.xlsx)のサンプルを入手
  • 解凍後の TESTフォルダをCドライブ直下に移動いただくと、当記事の手順でご利用いただけます。
  • フォルダ名や場所を変更された場合、記事内のファイルパスを実際のパスに変更してください。

タスクの作成

大きく分けて 5つの作業(処理)に分かれています。以下では、各作業をステップ形式でご案内します。

TASK1:一時的なワークブックの初期化

まずは、一時的なワークブック Temp.xlsx の内容をクリアにする処理を登録します。

Temp.xlsx は自動で生成されるため、この時点では存在していなくとも問題ありません。
同じ作業を繰り返す場合に必要となるため 1つ目の処理として追加しておきます。

STEP
実行するアクションの選択

Convert XLS を開いて [新規] ボタンをクリックし、「実行するアクションの選択」で [ファイルに対する特殊処理] を選択。

STEP
特殊処理 112 の指定

「特殊処理」の項目で「 [112] (*.XLS)セル内容クリア」 を選択し、「ファイル形式」の項目で、「[20] Excel File」を選択。

特殊処理112
STEP
入力ファイルと出力ファイルのパスを入力

「入力ファイル」と「出力ファイル」に、Temp.xlsx のファイルパスC:\TEST\OUT\Temp.xlsxを入力。

入力ファイルと出力ファイルの選択
STEP
セル内容のクリア

[セル内容クリア] 設定のボタンをクリックして、入力シートの指定で 1 (Sheet1)を入力、クリア詳細指定で「すべてクリア」を選択し [OK] をクリック。

セル内容クリア
STEP
タスクに追加

追加ボタン をクリックしてタスクに処理を追加。

TASK2:出力するワークブックの初期化

続いて、統合先ワークブック(FINAL.xlsx) の内容をクリアにする処理を登録します。

FINAL.xlsx 内で使用する計算式などを避けて、「仕入れ元」と「合計」の値のみをクリアにします。
この処理は前回作業時の内容が残っている場合に必要です。

STEP
特殊処理 112

「特殊処理」が「 [112] (*.XLS)セル内容クリア」となっていることを確認し、入力・出力ともに同じファイルパスC:\TEST\OUT\FINAL.xlsxを入力。

TASK2-特殊処理112(FINAL.xlsx)
STEP
セル内容のクリア

ここでは、見出し行より下のセル内(B4 以下)をクリアにする処理を追加します。

[セル内容クリア] 設定ボタンをクリックして、入力シートの指定で 1 (Sheet1)を、セルクリア指定に B4:* と入力、クリア詳細指定で「内容クリア」を選択し [OK] をクリック。

セル内容クリア(セル範囲)
STEP
タスクに追加

追加ボタン をクリックしてタスクに処理を追加。

TASK3:ワークブック内のデータをコピー

ここでは、入力フォルダ内の Excelファイル(ワークブック)内の特定セルのデータを、一時的なワークブックにコピーします。

具体的には INフォルダ内のワークブック内からB~G列2行目以降を Temp.xlsx にコピーします。

STEP
特殊処理 101

「特殊処理」の項目で「 [101]*.XLS指定したシートのデータから同じまたは別の XLS ファイルにコピー」 を選択。

特殊処理101
STEP
入力ファイルと出力ファイルのパスを入力

入力ファイルには、X.xlsxなどが保存されているINフォルダのパスC:\TEST\IN\*.xlsxを入力。
(フォルダ内の全てのファイルを対象とする場合、ワイルドカードを使用)

出力ファイルには Temp.xlsx のファイルパスC:\TEST\OUT\Temp.xlsxを入力。

C101の入力ファイルと出力ファイル
STEP
[シートのコピーの詳細] 設定

[シートのコピーの詳細] 設定をクリックで開いて、以下のように設定。

  1. 入力シートの「コピーする項目を選択」のリストから「」を選択。
  2. 「コピーするセルの選択」で「指定範囲をコピー」を選択し、コピーするセル範囲(例:B2:G*)を入力。
  3. 出力シートでは、「コピー先の指定」で「直近に使用したセルの下にコピー」を選択し [OK] をクリック。
STEP
タスクに追加

追加ボタン をクリックしてタスクに処理を追加。

TASK4:一時的なワークブック内から不要なデータを削除

以下の作業では、TASK3 でデータをコピーした Temp.xlsx 内から不要なデータを削除します。

STEP
特殊処理 107 の指定

「特殊処理」の項目で「 [107]*.XLS列または行を指定して削除」 を選択。

特殊処理107
STEP
入力ファイルと出力ファイルのパスを入力

入力ファイルと出力ファイルには、一時的なワークブックC:\TEST\OUT\Temp.xlsxを入力。

STEP
[列/行削除の詳細]設定

[列/行削除の詳細] 設定をクリックして「削除の指定」で「列の削除」を選択し、2-5と入力して [OK] をクリック。

列または行の削除設定

TASK3で出力したワークブック(Temp.xlsx)の 2列目~5列目が削除されます。
(INフォルダ内のワークブックの C~F列のデータ)

STEP
タスクに追加

追加ボタン をクリックしてタスクに処理を追加。

TASK5:最終ワークブックを生成

最後に一時的なワークブック(Temp.xlsx)を、最終的なワークブック(FINAL.xlsx)にコピーします。

STEP
特殊処理 101

「特殊処理」の項目で「 [101]*.XLS指定したシートのデータから同じまたは別の XLS ファイルにコピー」 を選択。

特殊処理101
STEP
入力ファイルと出力ファイルのパスを入力

入力ファイルには、TASK4 の出力先ワークブックC:\TEST\OUT\Temp.xlsxを入力。

出力ファイルには、統合先となるワークブックC:\TEST\OUT\FINAL.xlsxを入力。

TASK5のファイルパス
STEP
[シートのコピーの詳細] 設定

[シートのコピーの詳細] 設定をクリックで開いて、以下のように設定。

  1. 入力シートの「コピーする項目を選択」のリストから「」を選択。
  2. 「コピーするセルの選択」で「使用している範囲をコピー」を選択。
  3. 出力シートの「コピー先の指定」で「出力シートのセルまたは範囲の詳細を指定」を選びボックスに、貼り付けるセル位置に開始セルのB4を入力。
  4. [OK] をクリック
STEP
タスクに追加

追加ボタン をクリックしてタスクに処理を追加。

変換の開始と保存

変換開始ボタンをクリックして、登録した TASK1~5 の処理を実行します。

全ての処理が完了後、FINAL.xlsx を開いて、目的の状態となっていることを確認してください。

特殊処理によるワークブックの統合
  • [ファイル] [変換ジョブを名前を付けて保存] をクリックして、作成した作業を保存しておけば、次回以降の TASK 登録が不要です。
  • [ファイル] [変換ジョブを開く] より保存したジョブを呼び出せます。
  • 変換ジョブとして保存しておくことで、BATからの実行が容易となります。
    (例)ConvertXLS.EXE /J "C:\TEST\{ジョブ名}.SII"

難しいと感じたら

サンプルを利用して、以下の手順で各処理を確認してみてください。

  1. ワークブックのサンプルをダウンロード
  2. 7zファイルを解凍して、ワークブックの状態を確認
  3. 記事の手順を参考に、各 TASK ごとに変換ボタンをクリックして、処理後のワークブックの状態を確認

コマンドライン/バッチファイルの記述例

REM 入力フォルダと出力フォルダをセット

set InputFolder=C:\TEST\IN
set OutputFolder=C:\TEST\OUT

REM Temp.xlsx のデータをクリア
ConvertXLS.EXE /S"%OutputFolder%\Temp.xlsx" /T"%OutputFolder%\Temp.xlsx" /P112 /1 0 /2 1 /V

REM FINAL.xlsx のデータをクリア
ConvertXLS.EXE /S"%OutputFolder%\FINAL.xlsx" /T"%OutputFolder%\FINAL.xlsx" /P112 /1 2 /2 1 /3 B4:* /V

REM 入力フォルダ(InputFolder)内にある xlsx ファイルの指定範囲を Temp.xlsx にコピー
ConvertXLS.EXE /S"%InputFolder%\*.xlsx" /T"%OutputFolder%\Temp.xlsx" /P101 /1 1 /2 0 /4 TRUE /5 B2:G* /6 1 /7 TRUE /8 below /V

REM Temp.xlsx から不要なデータ(列)を削除
ConvertXLS.EXE /S"%OutputFolder%\Temp.xlsx" /T"%OutputFolder%\Temp.xlsx" /P107 /1 1 /2 2-5 /3 TRUE /V

REM Temp.xlsx のデータを FINAL.xlsx にコピー
ConvertXLS.EXE /S"%OutputFolder%\Temp.xlsx" /T"%OutputFolder%\FINAL.xlsx" /P101 /1 1 /6 1 /7 TRUE /8 B4 /V

pause
  • Convert XLS.EXE がデフォルトのフォルダにインストールされていることが前提となります。
  • 各処理ごとにダイアログボックスを表示させたくない場合、/V を削除してください。

使用したスイッチの説明

/S

入力ファイルを指定

/T

出力ファイルを指定(引用符を推奨)

/P112

特殊処理 [112] セル内容クリア(以下は追加パラメータ)

  • /1 # クリア詳細対象 (以下は # の値)
    • 0 = すべてクリア
    • 1 = フォーマットをクリア
    • 2 = 内容をクリア
    • 3 = コメントをクリア
    • 4 = メモをクリア
    • 5 = アウトラインをクリア
  • /2 # シートを名前または番号で指定
  • /3 # 対象範囲(セル)の指定(”使用範囲” の場合は空欄 or TRUE
/P101

特殊処理 [101] 指定したシートのデータから同じまたは別の XLS ファイルにコピー(以下は追加パラメータ)

  • /1 = 入力シート(名前または番号で指定)
  • /2 # コピーするもの(以下は # の値)
    • 0 = 値
    • 1 = 式のコピー
    • 2 = 値と表示形式
    • 3 = 数式と表示形式
    • 4 = 全て
    • 5 = コメント
    • 6 = 書式
    • 7 = 入力規則
    • 8 = 罫線を除くすべて
    • 9 = 列幅
  • /3 = シート名のコピー(”TRUE” または “FALSE”)
  • /4 = 指定範囲をコピー(”TRUE” または “FALSE”)
  • /5 = コピー元の範囲指定
  • /6 = 出力シート(名前または番号で指定)
  • /7 = 指定範囲にコピー (”TRUE” または “FALSE”)
  • /8 = コピー先の範囲指定
  • /9 = 列幅のコピー(”TRUE” または “FALSE”)
/P107

特殊処理 [107] 列または行を指定して削除(以下は追加パラメータ)

  • /1 = 入力シート(名前または番号で指定)
  • /2 # 削除対象(数値)。
    指定: 2-4,10 は、2~4行目と10行目/列を削除。-1で最後の行/列を削除。-x の指定で最後の x 行/列を削除。
  • /3 = 列の削除(”TRUE” または “FALSE”)
/V

詳細モード(変換結果をメッセージボックスで表示)

目次