◆はじめに

Excelのこと好きだお///

正規表現置き換えと矩形選択ができるテキストエディタがあれば、それと組み合わせて色々面白いことができる。時短の友。
いつもお世話になっております。

でも同時にきったねぇ!(辛辣)糞だ…(仕様が)とも思う。
「良くならねぇかな」といつも思う。

はい。じゃあこちらをご覧くださぁい

近くMicrosoft Excelが大きく進化する――Ignite 2017カンファレンスで発表

タイトルだけみて嬉しい気持ちになったんだけど、内容を見ると結構トンチンカンなことを言っている。いや、違うか。「進化する」って言ってるんだもんな。既存の不満点を直すとは言っていない。その不満点だってサイレント修正する可能性もある。不満点の修正を前面に出したところで、俺のような技術者がハァハァするだけだ。事務員さんはむしろ仕様変更に怒るかもしれない。そして、この発表でハァハァさせたい相手は投資家だろう。

でも俺はいまムラムラしてるし、ハァハァしたい。
だから表計算ソフトについて言いたいことを言ってハフハフする。

◆思うこと

データテーブルをいじりたい。
Access使えや変態」とかそういう話じゃなくて、もっと安全かつ手軽にデータをいじくりたい。

Excelは超便利なんだけど、込み入った作業をし始めるとと、ほんとバカみたいな仕様でバンバンぶん殴られる。
例としては

セルの先頭文字をアポストロフィーにするとそのセルの内容は文字列扱いされる

ってね(殺意)

…なんで(泣く)

ヤバいと思わなかったの?それとも「大変なことが起こるぞ…!」と思いながら実装したのか。大正解だよ!ぶっ刺さったわ!鬼畜が!

F1押すとヘルプが「よろしくニキー!!wwwwwww」とか言い始めるしEsc押しても消えねーしCtrl+Wでも消えねーしAlt+F4で閉じなきゃだし。
Excelの所為でF1の事が嫌いになった。どうしてくれんのこれ(憤怒)

あとはG標準とか・・・いや、もう言い始めたら限度がない。

そういう「人を殺せる仕様」が稀によくある

◆Excelの代わり

Officeファイルのフォーマット群にはOffice Open XMLという名前があり、標準化されている。素晴らしいことだ。
ファイルフォーマットが公開されているのだから、野良ハッカーがMS Officeフォロー、MS Officeコピーのソフトを開発することができる。そのおかげで俺たちはバカ高いMS Officeを購入せんでも無料でExcelを操作したりすることができる。ヤッダネ゙ェ゙!!

独自Officeのプロジェクトは結構乱立していて、種類が多い。でもどれも微妙だ。完成度が一番高いのはやっぱMS Officeだ。
そして、独自に開発したって標準に準拠しなければならないのだからクソ仕様もおまけで付いてくる。

◆じゃあどうすれば

っていう話をする。

▼表計算がしたい

表計算以外の用途もそりゃあればいいけど、何よりまず表計算がしたい。
だから「データベースの世界」「表計算しかできない世界(レポートの世界)」「表計算と表示の世界」を分けて欲しい。
一緒くたにしてもいいかもしれないけど、分けたいときがある。

だから、「データ」の格納場所が欲しい。
データテーブルが欲しい。

あの「B2セルから始まるデータ」を駆逐したい。どうやってデータ開始地点を取得すればいいのアレ。直接セルのアドレスを指定すればいいの?そんなアホな。
データの終了地点を取得するのも、色々考え始めると微妙に面倒。テーブルとして書式設定してくれれば一番いいんだけど誰もそんなことはしてくれない。

▼比較がしたい

Excelのブックやらシートを比較するマクロを今まで三本くらい書いた気がする。
俺だけで三本なんだから、世界中で何千何万と作られてきたんだろう。

データテーブルに「キー項目」が設定できれば比較機能なんざソフトに組み込むことができる。

▼整合性確認

ルールを教えてあげることによって、そのデータの整合性確認ができるようにしてほしい。キー項目の重複とかもね。
データの目検とかしょうもない数式書くのをやめたい。

▼データの非破壊操作

あるデータをExcelでいじるときに、元のデータを書き換えたくない。
書き換えたくないっていうか、書き換えるべきではない。情報のソースっていうものは普通、上書きしてはいけない。プログラマー的な感覚だから技術系のホモガキじゃないと理解できんと思うが。
元データを書き換えたくないけどデータを修正したいしセルに色付けたいし並び替えしたいし集計したいしフィルタしたいしセルにコメント入れたい。

つまり元のデータには一切触らず、「データに対する操作命令」を記録していく形にすればよい。その命令の結果を「変更後」として表示出力すればいい。
与えた操作命令が画面横に表示されていくような感じだろうな。GUIだけでなく、直接操作コマンドを打ち込むこともできよう。

なんかドメイン固有言語っていうか「データに対する命令セット」みたいなものを作る羽目になりそう。

▼フォーム

なんでAccessにフォームあんのにExcelにないの。
いや気持ちは分かるけど。

▼マクロ言語

ExcelでPythonっていう機運があるらしい。

ええやん。Python面白いし。VBAは残るのかな。VBAだって俺の育ての親みたいなもんだし好きだよ。

でもC#使わせろや!何のためにクッソデカい.NETばらまいてんだ!こっちは早く仕事終わらせて家帰って発電したいんじゃ!そしてついでにマクロのインターフェース公開できるようにしろや!

マクロとは言うけどアレでシステム構築してる野郎共もいるんだぜ?

◆結論

ゲイツ絶対に許さないよ