→JCLシートへ
エクセルだけを用いて、「バッチ処理がどの程度こなせるか」と云うテーマから出発した、私なりの解答です。
「バッチ処理機能の基本形となる、幾つかの「ひな型」(下図の青色で表現)を順次組合せ実行することにより、
一つの仕事を行なう」、との考えに基づいて成り立っています。
→下図へ
簡単な例で示すと、(出荷指示と在庫をマッチングし、在庫の更新と、出荷伝票の印刷をする。)
エクセルシートが、4表あるものする。
@、出荷指示データ 「Sheet1」 既存
A、在庫データ 「Sheet2」 既存
B、作業用シート 「WKSheet3」 一時的に用意する
C、出荷伝票 「Sheet4」 既存(伝票1頁分)
手順
1、@とAを商品コードでマッチングし、在庫引当てを行ない、B「WKSheet3」へ出力する。(自動)
2、B「WKSheet3」を開き、手操作で、引当て数の確定(修正)(セルへ直接入力)をする。(手動)
3、B「WKSheet3」から、A在庫データ「Sheet2」を再作成し、新在庫数を更新する。 (自動)
4、B「WKSheet3」から、C出荷伝票「Sheet4」に、出荷確定データを差し込み印刷する。 (自動)
ここで、手順1,3,4は「自動」となっているが、どうするのでしょうか?
手順1では
マッチングのマクロを「WKSheet3」に記述するのか?
→ いえ違います。
マッチング処理をする、エクセルシート「KT1NMATCH」【注1】が用意されています。
でも、「Sheet1」や「Sheet2」のレイアウトは千差万別なのに、出来るのですか?
→ はい出来ます。
「Sheet1」と「Sheet2」のレイアウトの定義と、マッチングキーの情報、マッチ、アンマッチ時の出力情報等を、「KT1NMATCH」にパラメタ(機能シートの固定位置に、項目情報等を、行と列で指定)として与えてやります。
マッチングの処理が2回必要な時は、「KT1NMATCH」を別名で作成するのですか?
→ いいえ。
そこで、「KT1NMATCH」のパラメタ部分のみを、別名のシート(「パラメタ1」等)に保存し、実行時に、読み込む機能を持っています。
2回目のマッチングパラメタは、又、別名のシート(「パラメタ2」等)に保存して下さい。
手順3でも同様に
「KTListEdit」【注1】入力シートから、出力シートへ、レコード単位に出力する機能が、用意されています。
手順4でも同様に
「KTReport」【注1】入力シートから、印刷シートへ、キーブレーク毎に、差込印刷する機能が、用意されています。
手順2は、手操作となっているが?
→ はいその通りです。
「JCLEmu」で通常のエクセルを指定した場合は、実行中断状態になります。
手順1が終了し、手順2で「WKSheet3」が開かれ、エクセルの画面が表示された状態で、止まる。
(指定によっては、開く前に停止も可能、この時は操作員に開くことを求めます。)
今、「WKSheet3」のレイアウトが、在庫データ「Sheet2」の後ろに、「Sheet1」の出荷指示数を追加し、
更に、その後ろに、新在庫数、計算式(=在庫数−出荷指示数)を付けた、ものとした場合。
開かれているシートを、目視により
「マッチングの結果が思わしくない商品や、新在庫数が負のものを、探し出し、
出荷指示数の部分を、直接、手修正する。」ことを想定しています。
この後、「WKSheet3」を閉じ、手順3から、継続実行の指示をすることになります。
【注1】:提供書庫名を示しています。実際の機能エクセルブック名は下記参照。→機能エクセル名へ
この手順を「JCLEmu」に、これも又、JCLパラメタとして指定します。
指定したパラメタは、別シートに保存し、必要な時に呼出、実行することが可能です。
即ち、JCLをカタログ化しておく機能があります。ジョブの数だけ作成しておけば、定常業務の効率化に繋がります。
その他の機能としては、
1、実行ジョブのロギング(作業記録)が採取される。
2、バッチ処理機能を持たない、普通のエクセルを開く時、自動OPENマクロを実行させる機能を持つ。
3、JCLの一部を実行することが可能。
1−2、バッチ処理パターン
バッチ処理機能のひな型は、幾つ用意されているのか?
a@ | 機能エクセル名 | 機能説明 | 提供書庫名 |
1、 | JCLエミュレータ.xls | JCLエミュレータ(下記xlsを制御) | KTJCLEmu |
2、 | マッチング.xls | 1:nのマッチング処理を行う | KT1NMATCH |
3、 | MNマッチング.xls | m:nのマッチング処理を行う | KTMNMatch |
4、 | リスト形式に変換.xls | 伝票形式から、リスト形式に変換 | KTListEdit |
5、 | リスト形式に変換3.xls | 表形式から、リスト形式に変換 | KTListEdit3 |
6、 | バッチソート.xls | ソート、及び単純抽出処理 | KTSort |
7、 | 抽出ソート.xls | 同上 抽出・読飛条件(From〜To) | KTPickup |
8、 | サマリー.xls | 複数のキーで集計レコード を出力する | KTSummary |
9、 | ブレーク.xls | サマリとほぼ同等(ソートしない) | KTBreak |
10、 | 汎用差込機能.xls | 一品一葉印刷 | KTASasikomi |
10、 | 葉書差込機能.xls | 一品一葉印刷(葉書等に特化) | 〃 |
11、 | 伝票型印刷.xls | 伝票型(応用用紙)印刷 | KTReport |
12、 | Eメール送信.xls | Eメールを住所録等から一括送信 | KTEMail |
13、 | 同上変換.xls | 同上表現に変換、又はその逆に戻す | KTDoujyou |
14、 | データ生成.xls | 指定シートに、データを自動で作成 | KTDGenerate |
15、 | イメージ取込.xls【注3】 | 指定シートに、画像(イメージ)を取込 | KTIMGGet |
1−3、プログラミング不要
ひな型とあるが、プログラムを作る必要があるのか?
プログラムに相当する、パラメタを指定して頂きます。
各ひな型により指定するパラメタは異なりますが、概ね次のようなものです。
1、入力シート名とレコードの構成。
2、出力シート名とレコードの構成。
3、編集項目の指定。(入力項目の行・列と出力項目の行・列) 【注2】
4、キー項目や読み飛ばし条件の指定。(項目を行・列で指定、条件値の入力)
殆どが、数値の入力です、又、対話型による指定も可能となっているので
予備知識は必要ありません。
【注2】編集指定時に、直接演算式は指定できません、作成するシートに予め計算式等設定の必要もある。
JCLEmu に付いては、エクセルのブック名(ファイル)を指定するのみ。
1−4、パターンが無いとき
これ以外のパターンが出てきた場合はどうすればよいか?
とにかく、このパターン内で解決する手順を模索して下さい。
又、問題解決の為には、シート内に、そこそこの、関数等を使用する必要があると思われます。(上記手順2の様に)
マクロを作成出来るかたは、オープン時、マクロ実行機能を動作させることができるので、
自作のエクセルシートをご活用下さい。
2.ソフト名称
「エクセルでバッチ処理」
3.ソフト概要
1.機能
汎用機等で云うところの、JCL(ジョブ制御言語)の真似です。
自シートに、入・出力対象となるエクセルシート名と、
プログラムに相当する、実行用(バッチ処理機能を持つ)エクセルを指定し、
実行ボタンを押すと、
各シートに対して、バッチ(入出力)処理が実行される。
(一般のエクセルを指定した場合は、順番に「開いて」いくだけ。)
(この時、Auto_Openマクロ実行指定可能。)
【実行用エクセルとは】
セルに記述する、 「関数」に対比させるなら、
シートに対して記述する、「処理関数」といえる。(上記1−2参照)
→1−2バッチ処理パターンへ
パラメタをシートに指定し、マクロがそれを解析実行する方式です。
例、VLOOKUPに「1:nマッチング」が対応か?
2.特長
1.マクロ、関数、DOSバッチファイルは一切不要。
(エクセルだけでバッチ処理が出来る。)
2.ジョブロギング機能。
3.実行時、入出力シート置換(オーバーライド)機能。
4.JCLパラメタの保存、読込が可能。(カタログ化)機能あり。
3.使用者のスキル(要求される、技量度)
1.マクロを含むブックを開くことができること。
2.バッチ処理思考が、できること。
3.関数、マクロの達人はご遠慮下さい。
4.操作手順
1.事前に、入・出力の対象となる、ブックとシートを作成する。(バックアップも)
2.事前に、個々の、バッチ処理機能エクセル用のパラメタを作成する。
(バッチ処理プログラムの作成に相当する。)
3.「JCLエミュレータ.xls」 ブックを開く。
4.パラメタの指定をする。(JCLの作成)
1.入力シート置換情報と、
2.出力シート置換情報と、
3.個々のバッチ処理機能と、それ用のパラメタ(上記4−2で作成分。)
5.パラメタのチェックを行なう。
6.パラメタの保存を行なう。
7.ジョブの実行を行なう。
5.制限・短所等
1.処理速度が遅い。
2.バッチ処理機能を持つエクセルの、事前ダウンロードが必要。
3.同上エクセルの為のパラメタ作成(プログラムに相当)が必要。
4.バッチ処理パターンが少ない。
5.利用者作成のマクロを呼出す場合は、引数の数等に制限があります。(詳しくは、添付の手引書参照)
4.インストール/アンインストール(インストーラは有りません。)
ダウンロードサイトへ
1.下記、"KTJCLEmu.EXE"(自己解凍形式) をダウンロードする。
2.ウィルスチェックを行う。
3.上記、EXEをダブルクリックすると、解凍される。
(特に指定しなければ、ダウンロードしたフォルダに"KTJCLEmu"フォルダが解凍される。)
4.不要になれば、「エクスプローラ」で削除する。
5.必要な機能のバッチ処理エクセル(上記1−2)を、別途インストールする。
→1−2バッチ処理パターンへ
6.例題を使う場合の環境作成は、使用手引書を参照して下さい。
5.提供資源一覧。
a@ | 説明 | 提供書庫名 |
1、 | 「エクセルでバッチ処理」のアーカイブ(書庫)自己解凍形式 | KTJCLEmu.EXE |
2.その中身。
a@ | 種別 | エンティティ名 | 説明 |
1. | テキスト | 利用者向け説明書.txt | 利用者向け説明書 |
2. | ブック | JCLエミュレータ.xls | パラメタ指定と実行機能 これが、主役です。 |
3. | ブック | 使用手引書_JCLエミュレータ.xls | 使用手引き書、4シート |
4. | フォルダ | 例題 | 例題用 |
5. | フォルダ | データ | 例題用の入出力シート |
6. | フォルダ | パラメタ | 例題用のパラメタ |
6、シートイメージ
7、注意事項
・JCLエミュレータ自体を、非表示として使用することは、出来ません。
・時刻起動や、インターバル処理は出来ません。
・JCL中の条件分岐は出来ません。
・動作環境は恵まれた状態で使用して下さい。(具体値は示せない。)
・お客様のエクセルの表示が「R1C1」方式に変ってしまう場合があります。
・このシステムを使用したことによる結果に対しては、一切補償は出来ません。
お客様の責任でご使用下さい。(データは必ずバックアップを行なって下さい。)
8、オーバーライドの例
データ生成機能の追加により、オーバーライド指定に複雑な要素が入り込みました。
実例で示します。(汎用差込機能も合せて)
【注3】イメージ取込の、オーバーライド指定について。
入力側のオーバーライド機能は使えません。
(理由)入力側がフォルダ、又はファイル指定までで、シートの指定が必要ないから。
9、仕様
書庫名 | KTJCLEmu |
バージョン | Ver1.1 |
最終更新日 | 2007/05/31 |
容量 | 0.8 M(解凍時=1.9 M) |
対応OS 必須環境 | Windows95/2000/XP (検証済み) (メモリーは多めに) |
転載 | 可能 |
ダウンロード |
Vector ダウンロードサイトへ |