Excel方眼紙もセル結合も悪くないよ

そんな感じの論を書いてみます。

概要

こういう記事を見ました。

全人類に告ぐ。セル結合をやめろ。

セル結合ではないですが、同じく批判される似たようなものとしてExcel方眼紙があります。Excel方眼紙については2014年ごろに話題になったみたいですね。

「Excel方眼紙」の何が悪い?

この問題は何時からかは不明ですが定期的に話題になっている問題であり、2016年には日本学術振興会の科学研究費助成事業にて1セル1文字入力を強要させるフォーマットのExcelファイルが公開され話題になり、河野太郎議員が文科省へ全廃を指示したりしました。また、「神Excel」問題として奥村先生が問題を指摘したりということもありました。

逆に方眼紙の使い勝手に着目したForguncy(フォーガンシー)なる、方眼紙チックな使い勝手に特化したプログラミングレスでWebシステムを構築できる製品も登場しました。

で、こういう話題が出てくるたびに、Excel方眼紙自体が駄目とか、セル結合自体が駄目、という論調の発言を度々目にします。とある展示会等々でそういうことを言われた経験もあります。でも、一律で全部駄目というのはちょっと違うんじゃない?というのを言いたいのがこれの記事です。

何故人は方眼紙を使ってしまうのか

これは言うまでもなく日本人には昔から根強い罫線文化があるからです。何時頃から罫線が登場したのだろう?と気になって調べましたが、少なくとも「明治 戸籍」などのキーワードで検索してみると罫線が複雑に組み合わされた戸籍謄本の見本が出てきますので、明治あたりにはすでに罫線文化?がある程度根付いていたのだと思います。とりあえず、そのくらい昔から日本人の心に染み付いているのが罫線だということですね。

現代でも罫線が入り組んだ複雑な表を好む人達はたくさんいます。

セルが2次元に敷き詰められていて、各セルの上下左右にそれぞれ独立した罫線設定ができるExcelは、少なくとも罫線を引くという事に限って言えばWordよりもずっと容易にそれを行うことが出来ます。

ちなみに、ジャストシステムの一太郎は日本の会社が開発しただけあって、罫線を柔軟に引ける機能に優れています(最近使ってないので具体的にどうだったかはもう忘れてしまいましたが)。

何が問題なのか

私がいちいち言うまでもなく、前述のリンク先等々を読んでいただければおわかりになると思われますが、Excel方眼紙やセル結合の悪いところはデータの再利用性が低いという事に尽きます。セル結合されたシートからデータを抜き出すのは大変ですし、データをコピペするのもしんどいです。

副次的に、入力がしにくいという問題もありますが、これはExcelを使うことによる問題というよりは単にデザインの問題であるのでここでは扱いません。セル結合でも方眼紙でも適切にフォーマットを作れば、操作しやすい(少なくとも苦痛ではない)入力フォームを作ることは可能と思います。

もうすこし深く考える

この問題の原因は表計算ソフトであるExcelをDTPソフト、組版ソフト、文書作成ソフトとして使ってしまったが故に、データの再利用性が低くなってしまったことにあります。しかし、そこでもう一歩踏み込んでExcelをDTPソフトとして使う人達の気持ちももうちょっと考えてあげたほうが良いんじゃないかな、と私は思います。

Excelは表計算ツールであって組版ソフトや文書作成ソフトではない。だからExcelを文書作成ソフトやデザイナとして使うな、というのは正論ですし間違ってないです。だからこそよく見る意見なのですが、いや、でも「素人でも使えて、大体どんなPCにもインストールされていて、それなりに正しく印刷出来て、現場で要求される複雑な罫線の編集が楽で、頑張ればVBAなどで拡張していくことも出来て、事務方の人間からも技術畑の人間からも許されるExcel」って冷静に考えるとめちゃくちゃ優秀じゃないですか?

実際、先に紹介した「Excel方眼紙」の何が悪い?という記事中においても、

筆者が日経PC21で初めてExcel方眼紙を取り上げたときも、賛否両論ありました。読者アンケートハガキを通じて、「これは目からうろこだ」「発想の転換で、こんなに便利に使えるのですね」「Wordを使っていたときに比べ、書類作成が格段に楽になりました」といった賛辞をたくさんいただいた一方で、「セルを結合すると、システムとの連携ができなくなるし、表計算ソフトの利点を全く生かせなくなる」として、そのデメリットを数ページにわたる論文(?)にして送ってくださった方もいました。
(「Excel方眼紙」の何が悪い? - NIKKEI TRENDY NET)[https://trendy.nikkeibp.co.jp/article/pickup/20140327/1056189/?P=3]

と書かれているように、Excel方眼紙が必要で、それがあるとありがたい現場っていうのはたくさんあります。

要するに「表計算ソフトであるExcelを文書作成やデザイナとして使うな」という意見は、世の中一般ですでに簡易デザイナや文書作成ソフトとしてExcelが広く利用されているという事実を軽視しています。今すでに広く知られている使い方の一つを撤廃させる理由として「本来の使い方ではないから」というのはあまりにも偏狭で原理主義的な考えだとおもうのですがいかがでしょうか。

逆に、「DTP的なことをやりたい」「とにかく罫線を引きまくりたい」というライトなユーザー層の要求を完ぺきにこなせて、どんなパソコンでも使用できて、扱えるユーザーが多いソフトってなんかあります?私は思いつかないです。

たとえばじゃあ、DTP的な事がしたいので表計算ソフトを使うのは止めて由緒正しいInDesignか何かを買ってインストールしてみんなで使い方を覚えるのが良いんでしょうか?それともTeXのマクロを事務方の人間がみんなで覚えるのが正義ですか?いや、予算的にも学習期間を確保するのもほとんどの職場では無理でしょ。

いや、InDesignやTexを使えというのは極論であって文書作成ならばWordで良いじゃないか。せめて文書はWordで作ろうぜ。という意見もあるかも知れません。たしかにそれも一理ありますが、画一的に文書はWordと言い切れるもんでもないんではないでしょうか。

Excelで作ったフォームは時にそこからデータを抜き出して再利用することが求められます。そのような用途でWordを使ってしまうと、時にデータを抜き出すのがExcelよりもしんどくなります。たとえば、厚労省で公開しているExcelの統計データがWordになってて嬉しいですか?統計データは値としてはめ込まれているだけで表計算ツールを使わなければならない必要性は無いですが、それでも文書ならばWordのほうが良いんですかね?そんなこと無いでしょ。

要するに問題の本質は「データの保存先・配布方法」と「データの表現方法」をごっちゃにしてしまっているという事なのでは、と私は考えています。

Excelが素人でも使えるDTPソフトとしても、データの保存・配布方法としても、どちらの用途でもそれなりに優秀であったがために、この2つの利用目的がごっちゃになっている。その結果、一方の用途では使いにくいExcelファイルが出来上がってしまったり、もしくは「データの保存・配布」がしたかったのに「データの表現方法」を重視してしまう、という事が発生してしまっているんではないでしょうか。

だから我々に必要なのは、Excelを止めろ、方眼紙をやめろ、セル結合を止めろ、ではなくして、「用途に合った使い方をしよう」という当たり前の話をすべきじゃないかと思うんですよね。

個々のケースに応じて考える

以上を踏まえた上で、私が個々のケースでどうするのが良いと思うかを書いてみます。

  • 紙で印刷してみんなに配布する、罫線がたくさん入った文書をExcel方眼紙で作っている

これは特に問題ない行為で、そのままで良いと思います。変えると余計苦労します。このようなケースでExcel方眼紙は止めろとか、セル結合は止めろとか言う必要は皆無です。

それでも代替案を出すならば、罫線を書くことが得意な文書作成ソフト、例えば一太郎を使うとかでも良いと思います。学校関係では一太郎の利用率が高いそうなので、そういう職場ではその職場の文化に合った方法を取ると幸せになれる気がします。

「そもそも罫線にこだわるのを止めて簡素な文書・帳票を作る」という解決の仕方もあるでしょうけど、先に述べたように罫線にこだわるのは少なくとも明治から続く文化であり、これを変えるのはとても大変です。

例外的に、外資系とかでもともとそういう複雑な罫線や表を要求されるケースが殆ど無いとかいう場合では、罫線にこだわるのを止めろ、でも済むかも知れませんね。外資系で働いたこと無いので知りませんが。

いや、でも外資系(日本国内の外資資本の法人)であっても日本で働いているならば複雑な罫線を引く場面はあるでしょう。日本企業とその慣習につきあうんですから。だから本当に罫線が嫌なら国外脱出するしか無いんじゃないですかね。いや、海外でも罫線の文化が無いとは限らない…などとも思うんですが、これ以上は脱線するので止めときます。

  • データ自体は別のシステムで利用しやすい形で管理されており、単に皆が入力・編集しやすいフォームをExcelで作りたい

これもデータ構造とその表現がはっきりと区別されているので大きな問題は無いと思います。私も、今までに「データベースのデータをExcelとして出力して、そこにデータを追記してまたデータベースに戻したい」みたいなことを業務システム開発で要求されたことは何度もあります。

たとえば、現場の作業報告書みたいな類の帳票ですね。データベースから作業対象の情報をExcelシートに書き出して、現場でそれを参照しつつ作業報告を記入し、そのExcelファイルからデータを自動で抜き出して業務システムにアップロードするという。

Excelをわざわざ介するメリットは、

  • オフラインでも参照できる
  • 印刷もできて帳票の役割も兼ねてる
  • 手で編集しやすい
  • みんな使える

というあたりでしょうか。

これらの要求からExcelというアイディアは出てきやすいのですが(そしてそういう事を言い出す人は大体『これは我ながら優れたアイディアだ!Excelを使えばみんな幸せになる!』みたいなハッピーな形の頭をしているのですが)、私はExcelにデータを出力したり、Excelからデータを読み取ったりする作業って実は結構しんどいのでこういうやり方は避けたほうが良いと思っています。私はApache POI、C# OpenXML SDKを使ったことがありますが、どっちも面倒で大変です。できればやりたくないです。

なので、似たような案件があるたびにそれを主張しています。でも、Excelが大好きという人は多いし、前述したようにハッピーな一種の躁状態になっているお客さんが多いので、Excel好きな人達に押し切られてしまうことも多々あります。まぁ結局、Excelからのデータ入出力がしんどいというのは開発側の事情ですからね。保守もめんどくさくて負の遺産化しやすいという判断も少しは考慮して欲しいというのが本音ですが。

で、そこに目をつけた製品も検索するとたくさん出てきます。今あるExcel帳票をそのままシステム化して値をデータベースに溜め込める!みたいな売り文句の製品です。

私も2つほど使ったことがあるのですが、制限事項が多かったり、その製品を使いこなすこと自体がPOIやOOXML SDKでExcelを触るのと同じくらい苦痛だったり、その製品のデータにアクセスする方法がCSVファイルによる入出力だったり、認証周りの機能がなく自前で実装する必要があったりするので、これもやりたくないです。正直、モダンな設計の製品ってこの分野では無い気がします。

というわけで、そのExcelファイルに溜め込んだデータの入出力って思ったよりも面倒だよ、という危惧はありますが、それが解決できるなら方法自体には何の問題も無いと思います。

  • データ自体は別のシステムで利用しやすい形で管理されており、単に帳票の一種としてExcelで出力したい

先の例と似ていますが、こちらは入力がなくて出力しかない場合ですね。溜め込んだデータをExcelで表現するだけなので、問題は無いでしょう。

ただ、これも繰り返しになりますがApache POIとかでせこせこデータを入れてくのってすごくしんどいです。さっきからしんどいしか言ってないですが、本当にExcelでなにかちょっと複雑なことをやろうと思うと、すぐしんどくなるんですよ。やった経験がある人ならば大体同意してもらえると思います。やってもなお苦痛じゃないという人は、Excel自体に思い入れがある特殊な性癖のある人だと思いますね。もちろん、そういう特殊な性癖には業界からのニーズもあるのですが、多くの人はExcelを扱うことが本来やりたいことではないのにそこで苦労するので苦痛になるんですよ。

Excelファイル(やOOXML)をJavaから触る方法としては、Apache POIが有名です。ただ、Apache POIが提供しているのはOOXMLや昔のXLSファイルを触るための比較的低レベルなAPIなので、POIの使い方を覚えるということはExcelファイルの仕様を覚えるということと似てたりします。なので、POIの使い方を間違うと壊れたExcelファイルが出力されたりとか、良く分からないヌルポがスローされたりとか、わけのわからない定義を良く分からない整数値で指定するとか、そういう場面がたくさんあります。

ソフトウェア開発って意外にスピリチュアルなところがあって、こういうプログラマが「嫌だな~嫌だな~」と思いながらキーボードを叩いて作ったシステムって、これまた不思議なことに保守作業も苦痛になることが殆どで、そうやって徐々にネガティブな感情を溜め込んだシステムは当然の帰結として技術的な負の遺産になるんですよね。

そこらへんをうまく解決出来るなら、Excelで帳票を作ってもいいと思います。なお、これは宣伝ですが、そこをうまく解決できるサービスがDocurainというやつです。

  • データが埋め込まれていない一般的な文書をExcel方眼紙で作っている

これは明らかにWordや一太郎などの通常の文書作成ソフトを使用したほうが良いと思われます。

私自身もこれまでよく目にしてきましたが、設計書等々の文書をExcelで作る職場というのは、IT企業でもよくあります。

章番号、段落番号でレベルに合わせたインデントを確保をするとか、特定の箇所でセンタリングするとか、図表を貼るとか、そんな感じの事が要求される文書をExcelで作ると余計に苦労します。

加えて印刷が絡むと、改ページの制御に苦労したり、図表を挿入するときに手動で行挿入してスペースを空けないといけなかったりします。もちろん、段落番号・章番号でインデントを確保するとか、図表番号を頭から振ってくれるとか、そういった機能もExcelには無いので全部手動です。

私は前職でExcelでの文書作成と図表番号の手動挿入をやれ1、と指示されて図表番号やページ番号の振り間違いを連発したことがあり、それに上司が「ちゃんと確認しろ」と怒ってきたことがありますが、逆ギレして「そもそもExcelでやらすな。Wordでやらせろ」と怒った事があります。

こういう文書をExcelで作るのは苦行以外の何者でもないです。このようなケースで本当に必要なことは、Wordのスタイル機能(や、その他の文書作成ソフトの同等機能)を理解して使いこなせるようになることでしょう。

どうしても複雑な罫線を引かなければならない場面が出てきてExcelで作りたくなったら、Word文書にExcelオブジェクトを埋め込むという方法を検討したらどうでしょうか。

  • アンケートや申請書類のようなデータ集計をすることを目的としてExcelを利用する

これがおそらく最も問題が発生するケースでかつ、もっとも槍玉に挙げられるケースかと思われます。Excelで入力フォームを定義し、それを対象者に配布、入力後返却してもらってそれを集計する、といった使い方ですね。

これを手動でやるのはミスのもとになりますし、人件費の無駄でもあります。自動化出来る方法がいくらでもあるのでそれを利用したほうが良いと思います。

最も簡単な解決策はGoogle Formあたりの簡単にデータ集計フォームを作成できるサービスを利用することでしょう。検索するとGoogle Form以外にも腐るほど同様のサービスが出てきます。この中から好きなものを選んで使えば良いと思います。この方法ならば最低限のITリテラシがあればなんとかなるはずです。

既存のサービスでは実現できない要求があり、作り込みが必要だとなった場合はどうでしょうか。この場合、その集計作業を行う人のスキルセットがどうなっているかによって適した方法は変わってきます。

プログラミングが出来ないならば、前述したようなForguncyのような製品を使うという方法があります。

もともとWebサービスの開発やその他のアプリケーション開発等々に精通している人ならば、サクッと何らかの方法で入力・集計しやすいフォームを作れてしまうでしょう。

または、世の中には「Excelの使い方とExcel VBAについてだけ異様に詳しい」というおじさんがたまにいます。そういう人がやるならば、Excelで適切なUIとして実装された入力フォームを作り、その結果をスクリプトで集計、なんてことも出来るでしょう。そこまで出来るならば、Excelを使い、かつ方眼紙であろうがセル結合を利用しようが、別に問題ないと思います。入力フォームからデータを自動で抽出して分離できるので。

ただ、個人的には「誰かが昔Excel VBAで作った神Excelツール」みたいな負の遺産になってしまうとすごく保守し辛いと思うので、できれば避けたほうが良いのでは…とも思います。

さらに言えば、私の経験上ですが、Excel VBAで正しく抽出できますよ、みたいな設計のExcelファイルは人の手に渡っていって運用されるごとに、結局使い方を理解できない人がデータを貯め込む対象として使い始めてしまって様々なやらかしを発生させるというケースも何度か見てきたので、そういった意味でもできれば避けたほうが良いと思います。

  • 統計などの大量のデータをExcelファイルにまとめて配布する

例えば、厚労省などが公開している統計データのようなものを想定しています。統計と言うと大げさな感じがしますが、日々の仕事で何らかの大量のデータが含まれたExcelを扱う場面は多々あると思います。製品や顧客の一覧だったり、案件の一覧だったりなど。

これも問題が発生しがちなケースだと思われます。

こういった類のデータをExcelで扱うときは、まさに冒頭で紹介した「セル結合をやめろ」という記事に書かれているような主張がフィットします。セル結合は止めたほうがよいでしょう。もっと言えば、1行目に各データの名前と説明、2行目以降は単純なデータというくらい極力シンプルな構造のデータとして配布するのが適しています。

こういった場面で見栄えにこだわってセル結合やExcel方眼紙などを利用するとデータをコピペしたり抜き出したりするのがすごく大変になるので、やるべきではありません。やりたいのは見栄えを整えることなのか、データを配布したいことなのか、その2つはこのケースに限らず常に考えるべきでしょう。

そういったところに気遣いがされていれば、Excelでデータを配布すること自体に特に大きな問題があるわけではないです。

なんだかんだで大量のデータを配布するのにExcelやCSVと言った形式は汎用性が高く優れています。オシャレではないですが、我々はオシャレのためにデータを参照しているのではないので、ここをあえて大きく変更する必要は無いです。

ちなみに官公庁などが公開している統計データの中には、なぜかPDFのみの公開でデータが抜き出しにくい形式で配布されているケースがあり、こういう場合に関しても言うまでもなくExcelでの配布が望ましいと思います。

  • 簡易的なデータベースや記録帳簿として利用したい

例えば、業務の種々の活動記録をExcelで作った帳票に書いておくとか、採取したデータをExcelファイルで保管しているとか、過去のプロジェクトの金額計算したものを個人的に保管しているとか、そんな感じの使い方をしているケースです。

こういう使い方は危険です。昔記入したExcelファイルをコピーして新しく編集したつもりが、実は過去のファイルに上書きしてしまって過去のデータが失われてしまった、とかいう経験は誰しもが一回はやらかすミスではないでしょうか。

消えたら困るデータをExcelで管理しておくのは危険です。理想を言えばちゃんと設計された何らかのデータベースやストレージに置いておくべきですし、それが簡単に出来るシステムを設計して運用すべきでしょう。

でも、すべての場面でそうするのはあまりにも高コストで現実離れしています。

こういう用途においてサクッとデータを溜め込んでおけるツールを作れますよ、という触れ込みの製品は過去何度も登場してきました。LightSwitchとか、FileMakerとか、Forguncyも多分同種の製品でしょう。MS製品が得意ならAccessとかでも良いかも知れませんね。

ただ、これらは一定程度利用されては居ますが、こういった「ちょっとしたデータを貯めておきたい」という用途のすべてを代替するには至っていません。結局、Excelでやるのが最も手軽で早くて汎用的だからだと思うんですよね。いくらプログラミングレスだとは言っても、起動したら大量のセルが並んでいて自由にデータを入力していける、という使い勝手よりは手間がかかってしまいます。

たぶんこういう用途で過去のデータが完全に守られていて、再利用性も高く、かつ手軽さがExcelと同程度、という優れた製品は実はまだ世の中に出てきて無いのではないでしょうか。

なので、ベストな回答と胸をはって言い切れる案は私には無いのですが、例えば私がExcelにデータを貯め込むという場合は、そのExcelをSVNやGitで管理して最低限、操作ミスでデータが消えないようにはしています。Google Spreadsheetだと履歴もとってくれるので、最近はこれを使うことがほとんどです。何らかの宗教的理由でGoogleのサービスを利用することが禁じられている場合以外は、Google Spreadsheetが現状最もマシな気がします。

データの形が将来に渡ってほとんど変わらず、かつ継続的に貯め込み、利用する機会も多いという場合ならば、ElasticsearchとかMongoとか普通のRDBMSを使います。もちろん、それらのデータベースを利用するのに専門的な知識が必要ですから、誰にとっても適切な回答ではないです。

このあたりは未だに人類の課題であり、完全には解決されていないんじゃないかな、と思っています。

まとめ

  • 神ExcelやExcel方眼紙といったものが世の中にはある
  • それらの中にはデータの入出力、再利用性といった概念が軽視されていて不便なフォーマットになっている問題もある
  • そうなっている原因は、簡易的なデータストアが欲しい人達と、デザインツールの類が欲しい人達の双方がExcelを使っているから
  • Excelは簡易的なデザインツールとしても簡易的なデータの保管先としても使用できてしまう汎用性の高いソフトで、かつ広く使われている
  • この問題に対処する統一的に適用できる優れたアイディアや製品は無い
  • ならばExcelとうまく付き合っていくべきではないか
  • 具体的には状況に応じて、Excel方眼紙をやるなり、Excelを止めてWordにするなり、Google Formにするなり、専用のシステムを構築するなりしましょう
  • データの保管場所と表現形式が明確に別れており、簡易デザイナとしてExcelを使うならばセル結合だろうが方眼紙だろうが問題ないよ

おわり。


  1. 客先からExcel形式での文書の納品をずっと要求されていたとかいう理由です。中には、客先でもともとExcelで作られた文書の編集結果が成果物に含まれているという仕方のない場合もあります。私ならばそういう仕事は受けませんが、営業は気にせずとってくるのが会社で働くプログラマの辛いところです。ここを突き詰めると「仕事とってくるだけしか能がないくせに」「俺が仕事とってこなきゃ仕事できないのに」の水掛け論になるので、双方がある程度の我慢を要求されます