BREWの画面部分のプログラムをExcelの仕様書から自動生成するという、シリーズ仕様書からプログラムソースを生成する方法の続きです。
前回、ソースを公開したのですが、字数の関係上、説明が書けませんでしたので、
その説明を書いておきます。
■ソースの概要
マクロは、それぞれの仕様書によってことなる固有部分と、
この雛形からソースを出す場合には、共通する標準処理とかありますが、
今回は固有部分を説明します。
標準処理に関しては、
仕様書からBREWのソースファイル自動生成
http://www.geocities.jp/xmldtp/bw_makebrew.htm
のダウンロードから、ダウンロードしていただき、そこの仕様書のマクロを見ればあります。
それと、まったく同じものです。
固有部分に関しては
・標準処理の前処理initAppData
・標準処理の後処理freeAppData
は記述しないといけないことになっています。
(何もすることがなければ、中身は空っぽの関数を書く)
なので、以下それと、そこから呼ばれる関数などについて書きます。
■前処理initAppData
前処理に関しては前々回書いたとおりです((4)の内容をちょっとかえています*)。
つまりこんな感じ
(1)作業一覧シートをクリア
(2)シートに対して、以下の処理をする
(あ)シートが画面一覧だったら、
アプリ用ソース、ヘッダ、バージョンファイルの書き出し指示を
作業一覧シートに書き出す
(い)シートが画面定義だったら
画面名を保持し、画面用ソース、ヘッダの書き出し指示を
作業一覧シートに書き出す
(3)保持しておいた画面名をもとに、画面用作業シートを作成する
この中で、イベントがあれば、
関数makeSagyoSheetで、画面イベント用作業シートも作成する
(4)保持しておいた画面名をもとに、画面用作業シートを検索し
画面イベント用ソースとヘッダの書き出し指示を
作業一覧シートに書き出す
のちに、今回出てきた、画面用作業シート作成makeSagyoSheetについて書きます
*従来の(4)、すなわち、画面イベント用のシート書き出しは、makeSagyoSheetの中で行っています。そして、イベント用の作業一覧シートへの書き出しについて、前に触れていませんでしたが、ここで行いますので、かわりに(4)に書いてあります。
■後処理freeAppDataについて
作業用シートは画面用でもイベント用でも、頭に@をつけているので、
1.まず、@がついているシートを探して、
2.そのあとで、それらを削除しています。
ただ、単純に削除しようとすると、ダイアログが
でて、削除していいか聞いてきます。それを抑制するために
Application.DisplayAlerts = False
でとめて
Application.DisplayAlerts = True
で元に戻しています。
■画面用作業シート書き出しmakeSagyoSheet
画面定義が書かれているシートを初めからみていって、
”メニュー一覧”という言葉が出てくるまでは、画面定義とみなし、
その内容を、作業用シートの画面定義のところにコピーします。
”メニュー一覧”から、”イベント一覧”までは、メニューの定義とみなし、
その内容を、作業用シートのメニューのところにコピーします。
”イベント一覧”という言葉以降は、イベント定義とみなし、
makeEventListという関数を使ってイベントのための処理をします
以降、イベント定義の処理makeEventListを説明します
■イベント定義の処理makeEventList
ここでは、
・画面定義のイベント一覧の内容を、作業用シートにうつす
・イベントの種類をgetEventModeを使って決定し、書き出し
・イベントクラスを取得し、そのシートがなかったら、
makeEventSheetでシートを作成し、基本的事項を書いた上で、
作業用シート、イベント用シートにイベント関数を書き出す
と、以上の処理をおこなっています。
ただし、現在これは、1つの画面に複数のイベントの場合しか対応していません。
複数の画面で、1つのイベント処理というケースにもち追うさせるには、この
makeEventListのイベントクラスと、イベント用シートの書き方を修正しないと
いけませんが、今回は複雑になりそうなので、ここでやめています。
■このシリーズの今後について
これで、「仕様書からプログラムソースを生成」したので、このシリーズは、ここで終わりです。ということで、BREWのシリーズも、ここで終了ということになり、今後のBREWの内容は、このブログでは、(シリーズでなく)単発的にとりあげることになると思います。
また新たなお話ができそうだったら、新しいBREWシリーズをやりますけど、今のところ予定はないです。
なお、この仕様書の公開、及び、今後のBREWに関するウィリアムのいたずらの活動拠点は、以下のサイト
BREW関係
http://www.geocities.jp/xmldtp/index_brew.htm
ということになります。いままでも、このサイトはありましたが、今後のウィリアムのいたずらのBREWの活動は、こっちに書いて、ブログのほうは、メモとかサブ的な役割になります。
なお、来年から、このシリーズの続きとして、iアプリを利用して、同じように仕様書からプログラムを自動生成することを考えます。
![](https://mokano.main.jp/card/analsysimg.cgi?imgfname=gokusho.jpg&ID=bun061220)