Excelの帳票表現力は中々のもの

結構前の話ですが

上記のようなツイートを目にしました。

これのリプライで「Excelでここまでやるのは神」「普通はIllustratorでやる」とか書かれてましたが、そうですかね?私はExcelもイラレも使えますが、同様のものを作れと言われたらまずExcelで作ると思います。もし印刷がどうしてもズレるとかmm単位で位置合わせの必要があるとかいうことであれば、Excelで作ったものをなんとかIllustratorにインポートして再編集すると思います。たしか、(MS OfficeでEPSだったか何だったか、一般的なベクトル画像にエクスポートできたはず…)

Excelでやると何が良いかというと、

  • グリッド形式のエディタ画面なのでグリッドで構成される帳票を作成するのが速い
  • 素人でも使える
  • 殆どのパソコンで利用できる
  • 再修正も容易

というあたりですね。今回であれば私は一つ目の理由を最重要視します。イラレでもオブジェクトを均等に配列で並べる機能はあるのでやってやれないことはないでしょうが、行列の概念は当たり前ですがイラストレータには無いので今回のような帳票を作るのは意外としんどいはずです。

2〜3番目のメリットは営利企業にとっては非常に重要です。

まず単純に外注しなくていい(自社社員)というメリットがあります。追加のコストがかからない、発注に関する事務手続きやリテイク指示などの時間的ロスが少ない。時刻表は1年?くらいで書き換わるんでしたっけ。そのくらいの間隔だと継続的に発注してデザイナーとの繋がりを保っておくのは厳しそうですし、人を見つけるのも苦労するでしょう。

クォリティの面でももしかしたら外注するより鉄道会社社員が作ったほうが優れてるのかも知れないと個人的には思いますね。時刻表の見やすさ(レイアウト、色使い)に関してはおそらく普通のデザイナーよりは鉄道会社の方がよっぽどノウハウを持ってるはずです。発注するにも仕事を依頼して良し悪しをチェックする能力は必要なわけですからね。「これが理想形」という知識が頭の中にあって、それを自分で作れる能力があるなら人に作らせるより自分で作ったほうが、その理想形を伝える過程での情報の劣化が無いので品質も良くなると考えられないでしょうか。

このブログでも何度も書いていますが、「エクセルは表計算ソフトだからそれ以外の用途はすべきでない」というのはもっともらしく聞こえますが、私はそうではないと思います。

本来の使用目的とは違う使い方で優れた道具になった物って沢山あるでしょ?ドイツの8.8 cm FlaK は当初敵航空機を撃ち落とすための高射砲として開発されましたが対戦車砲としても使用された、とかね。釣り竿とリールで凧揚げするとか。SMSを認証の一部として用いるとか。車のハザードランプは「ハザード」ではなく「ありがとう」の意味で使われることがほとんどですよね。「表計算ソフトに表計算以外のことをやらすな」が正だとしたら、歯ブラシや爪楊枝、割り箸で掃除するのもダメなんですかね?そんなことないでしょ。

Excelで表計算以外のことをやらすな、と主張している人のほぼ100%がそうだと思うのですが、おそらく仕事で

  • 前任者がVBAで書いたもはや保守不可能な業務用Excelツールの延命措置
  • 綺麗に印刷することも出来なければ編集も苦痛になってるExcel仕様書・設計書ファイルの編集
  • すごく入力しづらい申請書などのフォーマットの作成と入力
  • 金額や試験データなど重要なデータがExcelの中にしか無く、それを上書きしてしまった人が居る

などを経験してブチ切れた経験があるのではないでしょうか。それを根拠に「Excelは表計算ソフトだから表計算以外のことをさすな!!!」と怒ってるんではないでしょうか。

でも冷静に考えていただきたいのですが、これは「本来の使い方でない使い方をした」のが問題ではなく、単に仕事の仕方を間違えただけです。「本来の使い方で使用するのは正しい」「本来の使い方でない使用方法をしていることがある」「本来の使い方ではない使用方法で失敗した例がある」の3点から論理的に「本来の使い方でない使用方法をしているのは常に失敗である」は言えないですよね。それを証明するためには白いカラスを発見するのと同等の手間がかかります。

で、「本来の使い方でない使用方法をしているのは常に失敗である」は偽であると私が主張する根拠が、今回の時刻表のように「本来の使い方でない使用方法をして失敗してない」という例が存在するという事実です。

繰り返しいいますが、冷静に考えてほしいんですよ。Excelにビジネスロジックやデータベースとしての機能をもたせるからダメなのであって、純粋に表現の部分、プレゼンテーション層の部分のみを担うならば問題ないケースも多いんです。

ちなみに

  • 前任者がVBAで書いたもはや保守不可能な業務用Excelツールの延命措置
  • 綺麗に印刷することも出来なければ編集も苦痛になってるExcel仕様書・設計書ファイルの編集
  • すごく入力しづらい申請書などのフォーマットの作成と入力
  • 金額や試験データなど重要なデータがExcelの中にしか無く、それを上書きしてしまった人が居る

に関しては私なりに有るべき姿は何なのか考えてみますと、

  • Excelで作られた業務用ツールの重要度が増したならちゃんとコストをかけて業務システムの一部に格上げして保守管理してあげるべき
  • 紙として印刷することに意味が無いのならMarkdownとかJavadoc的なソースコード内の仕様書でやればいい。「読みやすい」「分かりやすい」「正確である」はおそらく重要だけど「紙に依存したレイアウト」「A4で印刷した時に全ページ綺麗に出力できること」は多分重要じゃない
  • UIをもっと頑張る(語彙)。バリデーションや希望するデータ形式への変換が出来るなら裏でやる。リッチなUIにしたかったら最初からHTMLとかで作る
  • Excelをデータストアに使うのはやめて、重要なデータはちゃんと冗長性や可用性が担保されたデータストアに蓄えとく

とかですかね。

何がいいたいのかと言うと「Excelで何でもかんでもやるのはダサい」とか、「紙文化はダサい」みたいな思い込みってあるじゃないですか。たしかにそうとしか表現できないケースも有るんですけれども、一般化出来る言葉じゃないと思います。

でも、Excelでやった方が楽、紙に出したほうが楽、表にしたほうが分かりやすい、みたいなケースも多々あると私は思っていて、そういう分野って「何となくダサい」という理由で技術的な発展が妨げられて来たんじゃないかな、という気はする。