さて、先の投稿で
二つのコード(For Output と For Input 或いは For Append の二つ)を活用する
で、システムから出力されるCSVファイルの取込、編集、出力 を紹介しましたが
それぞれが完成すると、全てのマクロを一つのボタンで連続して実行したくなります。
もちろん、Sub マクロ名 ~ End Sub の間に作成したコードをコピーして一つにまとめても結構ですが
サブルーチンとして、それぞれのマクロを実行する事が可能です。
一例です
Sub 連続ボタン_Click()
Call ボタン1_Click
Call ボタン2_Click
Call ボタン3_Click
End Sub
のマクロを準備して、ボタンから実行させると
ボタン1_Click、ボタン2_Click、ボタン3_Click と順番に作成済みのマクロを実行してくれます。
実務では
1、社内システムから出荷データを出力する
2、For Input を使ってエクセルに取り込む
3、客先仕様の伝票帳類を印刷する。
4、運送業者のシステム取込用のファイルにエクセルで編集する(ここもマクロ化)
5、For Output を使って運送業者使用のCSVを作成する。
6、運送業者のシステムで送り状などを作成する。
の場合、2,3,4,5のマクロを作成します。
最後に、Callで順番に実行するマクロ作成する と言う手順です。
後々、仕様の変更が発生した場合等の編集も、こちらの書き方が簡単です。
後任者への引継ぎも楽です。
For Output と For Input 或いは For Append は、そのままアクセスでも使えます。
では、エクセルで使うべきか、アクセスで使うべきか?
答え、エクセル
・アクセスは一般のバージョンのOffieには含まれていません。
(高価なバージョンのOfficeを購入した方のパソコンには含まれています)
・アクセスの得意とする数億件等の大量のデータを処理する事はありません。
・印刷のシートが簡単に誰でも作成できる。
ファイルの変換や印刷の機能は、エクセルで作りましょう。
もう一つに提案が VBS(VBScriput)です。
For Output と For Input 或いは For AppendはVBScriputでも使えますが
印刷の作業が出来ません。わがままですが、
①エクセルを起動、②ボタンをクリック、③エクセルを終了
と3回も操作しなければなりません。これも一連の作業で終了させたい。
可能です。先に、紹介した
ちょっとだけ VBS(VBScript)を紹介 音の連続再生 を使います。
デスクトップに作成したボタンをクリックするだけで
1、エクセルを起動
2、エクセルのファイルを開く
3、マクロを実行
4、ファイルを閉じる
5、エクセルを終了
を実行させます。
メモ帳を起動して
Set excel = GetObject("", "Excel.Application")
excel.Visible = True
excel.Workbooks.Open "ファイルへのパス\ファイル名"
excel.Run( "実行したいマクロ名" )
excel.Quit