エクセル問題に決着をつけるとしたら - まずは仕様策定が必要なんじゃない?

神エクセル? エクセル方眼紙?

少なくとも何ヶ月かに1回は、ネット上で「紙Excel問題」が話題になる。いい加減食傷気味ではあるのだけれど、うんざりしながらも私だってそのたんびに「Excelはどうにかしてくれ」と言ってしまう。たとえばこんな話題なんかにも、ついコメントしてしまう。

togetter.com

なぜ方眼紙的なExcelが問題なのかは、もう語り尽くされている。細かいことは省いて列記すると、

  • データが格納されている場所が恣意的で、使い回しが困難
  • 数式やマクロが存在した場合、メンテナンスが困難
  • 本来「表計算」ソフトであるはずなのにそれをレイアウトソフトとして使用しているため、文書作成に特殊技能が要求される
  • レイアウトソフトでないものでレイアウトしているため、書式の変更その他でデータを継承する際に、さらに複雑な技能が要求される
  • 用途外の使用を行っているため、環境依存の使い方やファイルの肥大など、想定外の問題が発生する

といったところだろうか。ついでに、それに対するExcel擁護派の主張は

  • なんだかんだいってもそれで用が足りる。それ以上のツールが見当たらない
  • ビジネス用途のPCには基本的に入っているので、汎用性が高い
  • ワードがアホ。パワポで作ったら数式を入れられない
  • グラフが簡単に描ける。データの分析もしやすい

みたいなところだろうか。

そして最終的な結論として、たいていはどっちも譲らないのだけれど、中間派の割と説得力のあるものは、「もっと使いやすいツールを誰か作ってくれよ」ということになるだろう。

私自身は、用途に応じてツールを使い分ければ済む話だと思っている。10年以上のLinux使いとしては、オープンソースの世界に必要なツールが揃っていることを声を大にしていいたい。ただ、使い分けにはそれなりの年季が必要だ。汎用性とか言われたら、「やっぱりExcelで作っとくか」みたいなことにもなる。だから、「Excelに代わるソフトを!」という意見も、それなりにもっともなのかなあと思う。

ただ、「じゃあ、それってどういうもの?」といったときに、おそらくそれはひとりひとりの中でイメージが大きくちがうんじゃないかと思う。イメージがちがうから、誰かにとっての「Excelに代わる、Excelを超えるアプリケーション」は、別の人にとってはそうではない。よく見る応酬は、「レイアウトするんならInDesignでやったほうがよっぽどキレイで早いじゃない」というDTP派の主張に対する「そんな高コスト(ソフト代、学習コスト)じゃ話にならない」「印刷物に手書きする書式だけの話じゃない」ってものだろう。Excelは書式の作成だけじゃなく、その書式に対して入力をしていくためのツールでもあるわけだから、レイアウトソフトの出番じゃないという意見には一理ある。けど、だからといってExcelでレイアウトするなんて、DTP触った人間には寒気がするものであることも、実感としてわかる。

Excelをまるごと代替するものは、しょせんExcelの改良版でしかない。そうやってExcelというソフトそのものがどんどん肥大化してきた歴史がある。基本的な機能は20年前、30年前と変わっていない。Excel(というか表計算ソフト)は、どこまでいってもExcelだ。その合理性も非合理性も、改良と肥大化を重ねても変わりはしない。

となると、「代替ツール」を考えるためには、いっぺん根本に戻って、ユーザーがどういうツールを必要としているのか、きっちり仕様を詰めておかねばならないのではないか。そして、そういう作業さえすれば、案外とこの長年にわたった独占状態も崩せるんじゃないだろうか?

なんでエクセル使うの?

では、ビジネスの現場では、どういうニーズがあるのだろう? ここから先は私の観測範囲だけのことなので、信頼性は高くない。問題提起と思って読んでくれればいい。とりあえず列記する。

  • 文書作成機能。罫線を引き、表組みを作り、出力したらそのまま書類として利用できるレイアウトをする機能
  • 入力機能。与えられた書式に対して必要な数値や文字列を記入する機能
  • 計算機能。入力された数値や文字列に対して自動的な処理を行う機能
  • データベース機能。入力された数値や文字列をデータとして保存・処理・活用する機能

このように分析してみれば、なぜExcelがこれほど愛されているのかがわかる。たとえば、文書作成機能だけ見れば、DTPソフトが最強として、慣れればワードやパワポのほうが使いやすかったりもする。ところが、そうやって作成されたデータには、入力がしにくい。DTPソフトで出力されたPDFに上書きするのはけっこう面倒だし(AdobeAcrobatとかIllustratorでPDFに追記するとか、オープンソースならXournalとかInkscapeとか)、ワードやパワポはすぐにレイアウトが崩れる。環境依存性も、Excelが最も小さいように感じる。だいたいが、PDFやPPTに入力されたデータなんて、どうやって使い回す? 一方、データベース機能ならそりゃデータベース専用のアプリケーション、たとえばAccessが当然有利なわけだけど、じゃあAccessの文書作成機能はどうなのかといわれたらExcel派には敷居が高いだろうし、気楽に計算機能をつけていくには学習コストが高い。初心者から上級者まで、さらにはレイアウトからデータ分析まで、多様な場面での多様なニーズにそれぞれそこそこに応えられるソフトは、確かに他にはない。

ビジネス文書には、多くの場合、書式をつくるユーザー(一次作成者)と、その書式を活用するユーザー(二次作成者)が存在する。たとえば営業報告書。報告書の書式を作成するのは上司で、それにデータを入力していくのは部下だろう。そして、そのような現場では、一次作成者のスキルは決して高くない。多くの場合、二次作成者としてデータ入力を繰り返す中でスキルを身につけていく程度の学習しかしていない。そしてExcelでは、そのハードルが非常に低い。日々、データ入力をして操作になじんでいれば、ちょっとだけ調べれば、すぐに一次作成者へとステップアップすることが可能になっている。

ということで、根っこは深いのだけれど、だからといって諦めるのは早いだろう。それぞれの機能にとって、「なぜExcelが使われているのか」をもう少し考えてみれば、出口が見えてくるように思える。

最強の入力ツールはブラウザでは?

まず、最優先で考えるべきなのは、入力機能だ。なぜなら、Excelを最も多く使うのは二次作成者だからだ。Excel擁護派の「ビジネスPCには必ずExcelは入っている。だから汎用性が高い」という主張も、二次作成者を念頭に置いたものであることは明らかだからだ。

そして、そう考えたときに、データ入力そのものにはほとんどExcelの機能は使わないのだということに気がつく。入力者は数字や文字が所定の場所に打ち込めればいいのであって、それはExcelとは無関係な文字入力だけの問題だ。ただ、文字入力する前提として入力するフィールドが何らかのアプリケーション上で開いていなければならない。それを開くためのアプリケーションとして、フィールドを作成したアプリケーションであるExcelがそのまま活用されているわけだけれど、ここは切り離してもかまわないことに気がつく。

となると、最も汎用性が高いアプリケーションは、現代ではExcelではなく、Webブラウザだということがわかる。いくらビジネス用PCではデファクトスタンダードだとはいえ、Excelは家庭用PCにはインストールされていない。さらに近年は、PCではなくモバイル端末が使われる機会も多い。というよりも、世の中は挙げてモバイルファーストの時代なのだ。モバイルでもExcelを開くツールが存在するとはいえ、モバイル端末から利用するのなら文書は基本的にブラウザで開けるようになっているのが好ましい。ブラウザで開ける文書であれば、どんな端末からでも利用できて、ビジネスでの幅がぐっと拡大する。これを使わない手はない。

Webデザイナーじゃあるまいし

入力機能にブラウザを使うとしたら、一次作成者はブラウザで開ける文書をつくらなければならない。そして、この部分のハードルが非常に高い。Webデザイナーならともかくも、専門知識のない人間にとって、ブラウザから入力可能な文書をExcelで表組みをつくるぐらいの気軽さで作成するなんてことはおよそ不可能だ。素人が気軽にいじれるようなGUIツールもない。

根本的な理由は、Webブラウザで開く文書は基本的にオンラインで使われるものであって、伝統的にはHTMLであるにせよ、現代ではCMSのようなサーバーごとにインストールされているシステムを使うものであることにあるのだろう。つまり、文書は特定のサーバーに格納され、それに対してユーザーはオンラインでアクセスする。これは、Excelのように個別の二次作成者が個別に自分のパソコンに文書を保持しているような使われ方とは大きくちがう。二次作成者自身は、データが自分のローカルにあろうがオンライン上にあろうが、どうでもいいだろう。だが、一次作成者にとっては、「ちょっと文書が作りたいな」と思ったときに、ローカルで作業できないのは困る。いちいち管理者権限でCMSにアクセスできるようにするわけにもいかない。制限した権限を与えて自由に文書作成ができるようにしてもいいのだけれど、Excelでゴニョゴニョやるのに比べたら学習コストは比べ物にならないぐらい大きい。

しかし、言葉をかえれば、このあたりさえどうにかできたら、問題は一気に解決できるのではないだろうか。Excelファイルと同じような感覚で一次作成者が気楽に書式を用意でき、それを二次作成者がブラウザで入力できるような仕組みがうまくつくれれば、Excelに頼る必要はなくなる。なぜなら、ブラウザで入力したデータをデータベースに整理するように設計することは困難ではないし、データベース化されたデータを使い回すのに文句をいうような人もいないわけだから。

ブラウザで開いただけで実行できるローカルファイルって、ない?

では、どんな設計にすればローカルで作成したデータをブラウザで扱えるようになるのだろうか。これは案外と厄介だ。たとえば、ローカルのHTMLファイルをブラウザで開くことには、何の困難もない。そこに表組みを作成しておくことも入力フォームを設置することも(現状、使いやすいGUIツールに問題があるとはいえ)簡単だ。だが、その入力フォームに入力したデータをデータベースに保存しようと思ったら何らかのエンジンを起動しなければいけないし、そのためにはたとえばLAMP環境を用意したサーバー上にファイルを置かねばならないとか、急速に話がややこしくなる。その関係の人々にとっては何らややこしいことじゃないのだろうと想像するけれど、ビジネスの現場でちょっと書式でも作っとこうと思ったおっさんにとっては、とてつもなく煩雑な手続きになってくる。

それを回避するためには、サンドボックス的に実行可能な環境までを組み込んだコンテナとしてファイルを用意することだろう。セキュリティ的に工夫は必要なのかもしれないが、外部から見たら1ファイルに見えるようなコンテナの中に、そのコンテナ内のデータファイルだけを変更可能な実行ファイルを予め組み込んでおく。このコンテナをブラウザで開いたときには、その実行ファイルがエンジンとなって、コンテナ内に用意された書式がブラウザ上で表示され、そこに入力したデータはコンテナ内のデータベースに格納される(そうすればローカルにおける相対位置みたいなことで悩むこともない)。そういうコンテナを設計できないだろうか。

一次作成者は、「Excel代替ソフト」を起動し、書式を作成する。それを保存すると、自動的に上記のようなコンテナが生成される。それを二次作成者に配布して(あるいはサーバー上に保管して)、データの入力を求める。サーバー上に置いたファイルに入力されたデータは既に一元管理されているわけだが、個別に配布されたファイルを集計する場合には、それが自動で可能になるような機能も欲しい(現状のExcelでは手動でコピペするのが大半だと思うが、マクロを組めば自動収集は可能だ。それを最初から実装しておくのは困難ではないと思う)。その上で、データをcsvで書き出すようにしておけば、あとはそれこそExcelでもデータベースソフトでも、好きなもので使い回せばいい。なんなら、書き出しと同時にExcelが起動するようなデフォルト設定にしといたってかまわないだろう。

方眼紙機能は、必要なんでしょうね

そういうフローを想定した場合、二次作成者に関しては何の指示も不要だ。ファイルタイプがブラウザと紐付けさえされていれば、ファイルを渡して(あるいは場所を指定して)「入力しといて」というだけでいい。たとえば「交通費の精算はここに入れといてね」で、十分だ。だから、ソフトウェアの作り込みとして重要なのは一次作成者の使用する「Excel代替ソフト」だろう。これが現状のExcelよりも十分以上に使いやすいものでなければ、だれも振り向かない。

現状のExcel人気は、その「方眼紙機能」だ。設計者の想定していないこの機能は、つまり、目視でx−y座標を定め、そこに目視で一定の大きさの枠をつくることができるということである。

これが他のソフトでできないかといえば、それはもう簡単にできる。たとえばワードだと(自分で普段使わないのでこのあたりはウロ覚えだけど)デフォルトでは図形描画はインラインになっている。これを用紙端からの絶対位置にしておいて、その上でグリッド機能を使えば、ほぼExcelと同じように使うことができる(はずだ)。ただ、その場合、文字を打とうと思ったらいちいちテキストボックスを作成しなければならない。そういうレイアウトソフト的な使い方をするのなら、まだパワポのほうがマシかもしれない(LibreOfficeなら図形描画のDrawがいちばんやりやすいと思う)。しかし、何にせよ、文字を入力したいところにそのままカーソルをもってきて入力できるExcel方眼紙にはかなわない。

ならば、そういう機能を実装すればよろしい。グリッド幅を2ミリとか3ミリにデフォルト設定しておいて、その単位で画面端からの場所をクリック操作でスタイルシートに書き込んでいくようなソフトなら、そんなに難しくはないのではなかろうか(どこまでをスタイルシートで指定してどこまでをドキュメントファイルに書き込むのがいいのかはよくわからないけれど)。データ入力フィールドは、デフォルトでは作成順にデータベース上の位置が指定されるようにしておく。タブ移動順の指定とか、そのあたりはAccessのようなデータベースアプリケーションの実装と同じようにすればいいだろう。印刷時のレイアウト崩れなどが発生しないようにブラウザ依存性を下げるにはどうすればいいのかとか、ちょっとシロウトには想像しにくいところもあるけれど、最近のウェブサイトの作りこみとか見てたらけっこう大丈夫じゃないかというような気はする。

諦めるのは哀しい

方眼紙は文化だとか日本人の性格だとか日本語の特性だとか、確かにそういう側面もあるのかもしれないが、重要なポイントは代替手段として「こうすればいい」というのが用意されていないだけの問題ではなかろうか。私は自分の経歴上、印刷書式つくるならDTP、データをいじるならデータベースソフトがよりよい選択肢と思うのだけれど、いずれも総合的に見たら難がある。仮にフロントエンドをIllustratorみたいな描画ソフトで美しく仕上げたって、じゃあ入力環境はどうするみたいな問題が発生する。入力されたデータがcsvできれいに整っていても、どうせそれを分析するのにExcel使うんだったら最初っからExcelでデータ入力しておいてよという気にもなる。

ひとつのツールで書式の作成から入力、データ処理までを一貫してやろうとしたら、どうしてもそのアプリケーションはExcelみたいになる。それを複数のツールを使ってもストレスなく一貫した作業ができるようにすることが重要で、そのためには特に汎用性の高い入力環境としてWebブラウザを採用し、その前後が素人レベルで軽快に行えるような「Excel代替ソフト」を開発する必要がある。

そんな「Excel代替ソフト」があれば、もう不毛な「紙Excel問題」は蒸し返さなくて済むようになるのではないか。意味不明の扱いにくいExcelファイルに困惑することがなくなれば、どれほど生産性が上がることか。そして願わくは、そのツールがオープンなものとして広く利用可能なものであって欲しい。特定の会社の特定の製品を買わなきゃ仕事ができないなんてことが許されるような時代じゃないんだからね。