簡単で短いコードのExcel VBAを開発するときは、頭の中で実現方法を整理できるかもしれません。しかし、何百行以上にもなるシステムになるとなかなかそうはいきません。そういうときに使える「IPO」という考え方を紹介する。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『ExcelVBAを実務で使い倒す技術』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「中級レベルの『Excel VBA開発者』になるために必要な考え方」はこちら
設計は、要望に対して何を、どのように実現するかを考えて決める工程です。
数十行程度の単一プロシージャによるちょっとしたツールであれば、何をどのように実現するのがベストなのかを、頭の中だけで整理できるかもしれません。しかし、コードの行数が何百行以上にもなる複数プロシージャによるシステムになると、なかなかそうはいきません。
その際に、システムはIPO(INPUT→PROCESS→OUTPUT)の組み合わせで成り立っているということを知っておくと、楽に設計を進めることができます。
Excelによる作業を思い浮かべてください。
手入力やフォーム入力、または他のシステムで出力したデータをインプットとして、帳票やグラフまたはファイルなどにアウトプットをする。その途中の処理として、データの計算、加工、転記などを施します。
ほとんどの「仕事」は、そのようなインプットとアウトプット、そしてその途中のプロセスの3つで構成することができるはずです。
これは、図1のように表現することができます。
VBAでシステムを作るということは、その「仕事」をPCに任せられるようにするということです。
ですから、システムを設計するということは、このインプットとアウトプット、そしてその途中のプロセスを決める作業と言い換えることもできます。
ExcelVBAの場合、この点、圧倒的に設計を進めやすい理由があるのですが、どういった理由かわかりますか?
それは、ExcelVBAにおいて、IPOのインプットとアウトプットは、ExcelシートまたはExcelブックである場合が多いということです。
それを図に表すと、図2のようになります。
つまり、システムの設計において、インプットとアウトプットに対応するExcelシートまたはExcelブックをサンプルやテンプレートとして準備してしまえば、システムの全容が見えてきます。
ですから、その部分をわざわざ別資料で明文化する必要はありません。インプット・アウトプットがExcelでない場合のみ、明文化すれば良いのです。
そして、インプットとアウトプットが先に決まれば、プロセスはおのずと決まってきます。
Copyright © ITmedia, Inc. All Rights Reserved.