Excel VBAの設計は事前準備から 大規模システムでも使える「IPO」とは:脱初心者! 1歩先を行くExcel VBA開発者のススメ(2)(1/2 ページ)
簡単で短いコードのExcel VBAを開発するときは、頭の中で実現方法を整理できるかもしれません。しかし、何百行以上にもなるシステムになるとなかなかそうはいきません。そういうときに使える「IPO」という考え方を紹介する。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『ExcelVBAを実務で使い倒す技術』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「中級レベルの『Excel VBA開発者』になるために必要な考え方」はこちら
インプット・プロセス・アウトプット
■システムはIPOの組み合わせでできている
設計は、要望に対して何を、どのように実現するかを考えて決める工程です。
数十行程度の単一プロシージャによるちょっとしたツールであれば、何をどのように実現するのがベストなのかを、頭の中だけで整理できるかもしれません。しかし、コードの行数が何百行以上にもなる複数プロシージャによるシステムになると、なかなかそうはいきません。
その際に、システムはIPO(INPUT→PROCESS→OUTPUT)の組み合わせで成り立っているということを知っておくと、楽に設計を進めることができます。
Check!
- INPUT:入力
- PROCESS:処理
- OUTPUT:出力
Excelによる作業を思い浮かべてください。
手入力やフォーム入力、または他のシステムで出力したデータをインプットとして、帳票やグラフまたはファイルなどにアウトプットをする。その途中の処理として、データの計算、加工、転記などを施します。
ほとんどの「仕事」は、そのようなインプットとアウトプット、そしてその途中のプロセスの3つで構成することができるはずです。
これは、図1のように表現することができます。
VBAでシステムを作るということは、その「仕事」をPCに任せられるようにするということです。
ですから、システムを設計するということは、このインプットとアウトプット、そしてその途中のプロセスを決める作業と言い換えることもできます。
■インプットとアウトプットがExcelである
ExcelVBAの場合、この点、圧倒的に設計を進めやすい理由があるのですが、どういった理由かわかりますか?
それは、ExcelVBAにおいて、IPOのインプットとアウトプットは、ExcelシートまたはExcelブックである場合が多いということです。
それを図に表すと、図2のようになります。
つまり、システムの設計において、インプットとアウトプットに対応するExcelシートまたはExcelブックをサンプルやテンプレートとして準備してしまえば、システムの全容が見えてきます。
ですから、その部分をわざわざ別資料で明文化する必要はありません。インプット・アウトプットがExcelでない場合のみ、明文化すれば良いのです。
そして、インプットとアウトプットが先に決まれば、プロセスはおのずと決まってきます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり - Excelデータの入力不備で計算エラーが発生して家に帰れない!――入力規則よりも簡単なチェックマクロとは
1つのExcelファイルを複数人で編集する場合、想定していたのとは違う形式でデータを入力されてしまい、不備が発生する可能性も少なくない。その問題をExcel VBAで解決するにはどうすればいいのだろうか。 - 一石二鳥で時間に余裕が!――面倒くさい見積書や請求書などの書類を自動作成するマクロとは
見積書や請求書、経費精算書などのさまざまな書類をExcelで作成している人は少なくありません。その書類を手で入力したりコピー&ペーストで作成したりしていては、人為的なミスが起こり、時間がかかってしまいます。今回はVBAで書類を作成する方法を紹介します。