Excelのセルを方眼紙のように正方形にして、帳票レイアウトを作る「Excel方眼紙」。このテクニックについての議論が喧しく交わされています。ここ2週間ほどを見てもメジャーな媒体に複数の記事が掲載されています。

「Excel方眼紙」の何が悪い?(記事の初出はITProですが、ITProはログインしないと全部読めないため、トレンディのリンクを貼っておきます)
Excel方眼紙をどうやってやめさせられるかを考えてみる(Yahoo!個人)
Excel方眼紙めぐる論争 弊害あるのにやめられない理由とは(NEWSポストセブン)

これらの記事、Excel方眼紙の何が問題かは書いてあるものの、代わりにどうするのがいいのかについてはほとんど記されていません。これでは、仮にExcel方眼紙使いの人が、それをやめたいと思っても、どうしようもないでしょう。

Excel方眼紙の問題点は、(1)セル結合の多用によって、データの再利用が難しくなっている、(2)後からのレイアウト修正が困難、(3)数字1桁ごとセルに入れていくようなパターンもあり、数値データとしての意味がなくなる、といったところだと思います。

Yahoo!個人のえふしんさんの記事ではExcel方眼紙の代わりとしてWordやPowerPointへの言及がありますが、これらは代替にはなりえません。なぜかというと、(1)のデータの再利用について見ると改悪にしからならないからです。私は、Wordのマクロも結構書いていますが、Wordのマクロで表のデータを扱うのはExcelマクロと比べて、むちゃくちゃ大変です。また、メインテナンス性は全くなくなってしまいます。

(2)のレイアウト修正についても確かに面倒なところはいろいろありますが、かといってそれよりも使いやすくてデータの再利用が可能なアプリがあるわけではありません。例えばデータベースソフトのAccessの場合、きれいに帳票を作るのは悪夢のような作業になるでしょう。

(3)については、そのような使い方はやめるべきでしょうが、Excel上であれば、セル参照と計算で、数値が比較的容易に再現できます。

結局、いろいろな点で見て、Excelの使いやすさを総合的に上回るものはないと思うのです。

では、Excel方眼紙を使い続ければいいのかというとそうではありません。

ITPro(上記リンクでは日経トレンディ)の記事で参照している「実践ワークシート協会」のページでは「エクセル方眼紙は百害あって一利なし」としているのですが、その説明に以下のように書いてあります。
エクセル方眼紙を全否定しませんが、もし、業務としてそれらのデータを「再利用」するのであれば、エクセル方眼紙にすることで Excel が本来業務向けに持っているポテンシャルの半分以上を殺し、その状態で無理やり業務利用しようとすることで無駄な開発、無理な実装が発生していることが多々あります。

ワークシート設計の基本は「入力シート」、「計算シート」、「出力シート」の3つに役割をわけることです。

その上で、入力シートと計算シートを1つにする、入力シートと出力シートを1つにする、などでより使いやすいワークシートに修正していくことで、Excel のポテンシャルを引き出しながら、実務で最大限の利用が可能になります。


なるほど、と思いました。Excel方眼紙の問題はWebプログラミングの構造化の問題と同じだったのです。

1990年代後半にPHPやMicrosoftのASP(Active Server Pages)が出てきたとき、HTMLの中に簡単にプログラムが書けて結果を挿入するというのが主な使い方でした。このような使い方は便利で人気が出たのですが、大規模なサイト作成には向かず、メインテナンス性も低いものでした。

そして、PHPを使うにしてもプログラムと表示は分離したり、MVC(モデル・ビュー・コントローラ)の考えを取り入れた各種フレームワークが使われるようになってきたわけです。

実践ワークシート協会のページで提唱している「入力シート」「計算シート」「出力シート」に分けるというのは、まさにプログラムと表示の分離と同じ考え方です。計算シートのところをコントローラと捉えればMVC的であると言ってもいいかもしれません。

このように分ければ、ユーザーが実際に数値や文字を入力する部分は単純な表にでき、データの再利用がやりやすくなります。

出力シートのところは方眼紙テクニックを使っても構わないでしょう。やろうと思えば「計算シート」で「入力シート」の数値を桁ごとに分解して、出力シートで参照するといった方法だって可能です。

Excel方眼紙の問題は、出力とモデルを一体化していること。まずはそこを認識することがこの問題の解決の第一歩ではないだろうかと思います。