最近読んだ下記2点の記事が今まで意識していなかったExcelのワークシートの使い方やVBAの設計について、表現は若干違えど、本質的にはほぼ同じことを伝えようとしていて非常にわかりやすかったのでシェアしていきます。
第12話「業務システムってなんだろう?」3/4|VBAとの出会い編|やってみよう!Excel VBAで業務改善!
プログラマが考える劇的に効率が上がるExcelシートの作り方 | 三度の飯とエレクトロン
作成・設計する前に意識したい3つの要素とは?
- 入力…手入力・ワークシート読み込み・ファイルインポートなど
- 加工(演算)…計算/集計・データ整形など
- 出力(表示)…画面表示・帳票印刷・ファイルエクスポートなど
この3つの要素です。
具体的には、先述の2記事それぞれ説明部分を引用します。
この図のように、どんなシステムも基本的にやってることはあるデータを”入力(用意)”し、
それを決められた方法で”加工(計算)”し、そして何らかの方法で”出力(保存)”する、
という作業をやっているにすぎない。
つまり処理したい業務に応じて、どんなデータを”用意”し、どのように”計算”させ、
どんな形で”出力”するかを、あらかじめ想定しておく必要があるんだ。
この作業を”設計”と呼ぶよ」
参照元:第12話「業務システムってなんだろう?」3/4|VBAとの出会い編|やってみよう!Excel VBAで業務改善!
拡張性が高くて、必要な処理は全部Excelがやってくれて、誰がデータを入れてもすぐに結果が見えたら、嬉しいです。
保守性が高いものを作るために、プログラマは要素を分割して、責任をわけます。ぼくはExcelを「3つのシート」にわけようと思います。
そういえばExcelで新規ファイルを作成すると、空のシートが3つ入っていたりしませんか?これは、「入力」「演算」「表示」の3つに分けるためのものなのだと、最近考えるようになりました。
- 入力(Data)
- 演算(Operation)
- 表示(View)
この3つに分けるので「Data-Operation-Viewパターン」、頭文字をとって「DOVパターン」とかっこつけて名づけます。「ドブパターン」です。かっこわるいです。
参照元:プログラマが考える劇的に効率が上がるExcelシートの作り方 | 三度の飯とエレクトロン
まとめ
今回ご紹介した3要素は、かなり応用範囲が広いフレームワークですね。
マクロな視点では事務処理全般の工程自体も入力・加工・出力のどの部分に該当するかで整理できます。
業務設計や事務処理フローの見直しにも役立つ概念になりえます。
また、先述の紹介記事の中のように業務システム全般にもちろん必須の考え方です。
それはExcelベースだけとも限らず、Accessベースだろうと、Webベースだろうと共通です。
Excelだけの観点でも、複数ファイルで上記3要素を満たしてもいいですし、1ブックの中の複数シート、あるいは1シートの中の複数箇所で満たしてもいいわけです。
あくまでも上記3要素の役割をそれぞれどこに・何にするか、という部分を明確にできるとユーザーインターフェース・拡張性・保守性などのあらゆる観点から、自分やチームにとって使いやすいExcelシートやVBA、システムなどの作成・設計につながります。
もちろん、既存のものをより良いものにするためのチェックにも使えますので、現状使用しているものがしっくりしない・効率が悪いなどを感じている方も上記3要素をもとに見直してみましょう。
よくExcelシートやVBAを扱う方のご参考になれば幸いですm(_ _)m