ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

仕様書からプログラムソースを生成する方法(Excelの仕様書編 その26:イベント追加 説明)。

2006-12-28 14:12:43 | ケータイ

 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アプリを利用して、同じように仕様書からプログラムを自動生成することを考えます。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 子供に、ゲーム「制作者の意... | トップ | Javaの画面表示-その6:S... »
最新の画像もっと見る

ケータイ」カテゴリの最新記事