category name  »  page title date

スキーマ図の作成

ここでスキーマ図と言っているのは、プロジェクト全体の構成(とくに各ワークシートの機能とワークシート相互の関係)を表わす図のことです。

なぜこれを作らなくてはいけないのか?
複数のワークシートを使って一連の作業を行い、最後にどこかに結果が表示される、というようなシステムを作っていると、なかなか全体像が見えにくくなり、操作や参照もあちこちに跳んでこんがらがって来がちです。
ひとくくりの作業は専用のワークシートの内部で完結させ、他のワークシートに受け渡すデータをはっきりさせることが必要ですが、ワークシート間の主従関係を明確にするために、全体の見取り図を描いておくことも重要です。
少し複雑な作業を行うブックを作るときには、筆者はその見取り図を最初のワークシートに描いておき、いつでもそこに戻って来られるようにしています。

以下は、こんな感じで描いておくとわかりやすいのではないか、という例です(一緒に作業していた外国人スタッフにも理解できるようにと、英語表記でわかりにくくてすみませんが、内容そのものが重要なわけではないのでご勘弁ください)。

この見取り図の中のそれぞれ色のついたボタン図形をクリックすると、該当するワークシートが表示されるようになっています。その仕組みは簡単で、「ワークシートの移動(GotoSheet())」に紹介しておきました。

例 - その1

黄色い箱をクリックすると、それぞれ同名のワークシートに移動します。
この際、内容は重要ではないのですが、一応図の説明をしておくと。
このプロジェクトは、降雨強度の変化から、複数の水路への表流水の流出量を算定し、水路の大きさを変えた場合に下流での流水の高さが時々刻々どう変わっていくか、というシミュレイションを行ったものです。各区間の水路の大きさは、reachDimennsion.xlsx という外部ファイルを参照します。最終的な結果は flow level という名前のワークシート上で表およびグラフで表示されるようになっています。・・・・というような全体構造がここで表現されています。
このような図がないと、筆者自身も、おそらく一週間もたてばメンテしようにも立ち往生してしまうに違いありません。

例 - その2

これはもう少し複雑で、同じように水の流れを扱っているのですが、途中に調整池があった場合、その調整池の形状や規模、それに排水口の形によって、その池の水面高と排水口からの流量がどう変化するかをシミュレイトし、その結果を用いて、必要な調整池を計画しようというものです。
ここでは、それぞれのワークシートの中でどんな仕事を行っているかということも、表現しています。
このカバーシートも、赤い箱をクリックすると所定のワークシートに移動するほか、この見取り図の中の濃紺のボタン(MAKE、GO)をクリックすると、そのワークシート内の同名のボタンを押したと同じマクロを実行するようにしています。

右上に「Lock」「Unlock」というスイッチが見えますが、これはこのスキーマ図を編集するためにこのワークシート(Coverシート)の保護を解除するためのものです。ワークシートの内容をいじったり、それにあわせてマクロの動作を変更したりしていると、当然ながら全体構成も再調整することになりますので、開発作業は、それぞれのワークシートとこのスキーマ図との間を行ったり来たりすることになります。