さて、先の投稿で

二つのコード(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、エクセルを終了

を実行させます。

 

メモ帳を起動して

Dim excel
Set excel = GetObject("", "Excel.Application")
excel.Visible = True
excel.Workbooks.Open "ファイルへのパス\ファイル名"
excel.Run( "実行したいマクロ名" )
excel.ActiveWorkbook.Close False
excel.Quit
Set excel = Nothing
MsgBox "作業が終了しました"
拡張子を .vbs と名前を付けてデスクトップに保存
作成されたアイコン をクリックすると
コードの通り
エクセルが起動、ファイルを開く、マクロを実行、ファイルを閉じる、エクセルの終了
一連が実行されます。
excel.Visible = True はエクセルの動作を確認する為に記述しています。
上手く作動すれば、削除 或いは コメントアウト します。
アイコンをクリックしてもエクセルの画面が表示されなくなります。
砂時計の後、最後にメッセージが表示されるだけです。
まるで、プログラマー が作成したプログラムに見えます。
 
天真さんと山田君には、後ほどメールで伝えておきます。