2010-02-09[n年前へ]
■RubyでExcelを操作するときのTips
昨年「RubyでExcelのデータを読み込む」というエントリを立てた。ExcelのデータをRubyで処理すると、オフィスアプリを使うレイヤとシステム開発をするレイヤの橋渡しが簡単になりますよ、という記事だった。
今回はその続編。Rubyの方からExcelに値や書式を設定していく際のTipsをメモっておく。
2010-03-09[n年前へ]
■「電子ペーパー」でもあるエクセルは、プロトタイピングに向いている。
オライリーの「Excelプロトタイピング ―表計算ソフトで共有するデザインコンセプト・設計・アイデア
」を読みました。この本は、Excelを代表とする表計算(スプレッド・シート)ソフトで、アプリケーションやWEBページの「見た目」や「大まかな動作」の試作品(プロトタイプ)を簡単に作る方法を解説したものです。一番最初は、「えっ?これがオライリーの本!?」と驚くくらい、カラーページが多く、画面キャプチャをふんだんに使いつつ「やり方の説明」が書かれている本です。
「エクセル=時間泥棒」という等式が成り立つ、と私は感じています。ただし、この等式が成立するのはある条件下においてであるとも思っています。その条件とは、「定型的な作業で、とても簡単に自動化できることのはずなのに、それを人が繰り返し似たような作業を時間をかけて行っている場合」「(エクセルでない)違う道具を使えば、簡単に(作成した)道具の再利用が可能になるだろう場合」というものです。
そういった場合でないならば、たとえば、「一回こっきりの作業」や「一番最初のアイデアスケッチ」をするような時であるならば、エクセルを使うのは悪くない選択肢だと思っています。だから、「(とっても簡単な)プロトタイピング」であれば、Excelを使って「やってみる」こともあります。
エクセルは、良くも悪くも、まさに「見たまま」に作業をすることができます。その「特徴」は、「(非常に簡単な)プロトタイピング」をする時には、「特長」すなわち長所になります。ところが、複雑なものを作ろうとする場合になると、その特徴はまさに短所になってしまうのです。たとえば、画面内にとても収まらないような巨大なスプレッド・シートを作る羽目(はめ)になってしまったりします。
あくまで、比較的簡単で小さなものを作るという条件下において、見た目そのままに思いつくままに作業することができるエクセルは、なかなか現実的な「プロトタイピング開発環境」になると感じているです。
私は、エクセルは「電子ペーパー」だと思っています。もともと、紙上で行っていた集計作業を楽にするために作られたのが表計算ソフト(VisiCalc)であって、エクセルはその流れから生まれたものです。「プロトタイピング」という作業には、一番「紙=ペーパー」が最適だと(より正確にいえば、ホワイトボード+記録媒体という組み合わせが一番良いと思っています)、旧ザクならぬ旧世代の私は思っています。だから…というのも変ですが、「電子(処理機能を備えた)ペーパー」でもあるエクセルは、プロトタイピングに向いているように感じられます。
ところで、本書のタイトル「Excelプロトタイピング」には、「やられた」と思いました。なぜなら、私が編集者だったとしたら、そういうタイトルの(シリーズ)本を作ってみたいと思っていたからです。「Excelでプロトタイピング~○×編~」という本をいくつか、編集者として作ってみたかったのです。そして、自分自身、そこから学んでみたかったのです。
その思いは、たぶん自動的に下に出てくるだろう、この記事の「関連お勧め記事」を読む、を眺めればわかるだろうと思います。
2010-03-15[n年前へ]
■あみだくじシミュレーションをエクセルでプロトタイピングしてみよう
「電子ペーパー」でもあるエクセルは、プロトタイピングに向いている。と書いたので、今日は「あみだくじシミュレーション」をExcelで適当に書いて(描いて)みました。そうでした、私は自分自身で作ることが好きなのでした。
作成したエクセルのファイルは、ここに置いておきます。ワークシートの説明(あるいは修正)や、ワークシートを使って色々なことを考えてみよう、ということは明日以降にしてみようと思います。とりあえず、このエクセルのワークシートを実行しているところを動画キャプチャしたものが、下の動画です。
このエクセル・ワークシートは、循環参照を使い、また計算順序を考慮したバッファリングを使うことで計算が成り立っています。ただし、エクセルの実装の仕組みのために、手動計算を行うためにF9を押しっぱなしにしても、反復計算が全セルに渡って行われるわけではないように思えます(これは検証していない未確認情報です)。そのため、計算を確実に行わせようと思うなら、今のところ、(あみだくじの横棒の数だけ)F9を連打する必要があります。
あみだくじを考えるなら群論を使えとか、IF関数を使うのであればVBAを使うやり方と大して変わらないのでは?とか、エクセルでない他のプログラミング言語を使った方がよっぽど楽にプロトタイピングをすることができるのに…!?という感想も多々出てくるだろうと思います。
とはいえ、今日はとりあえず、あみだくじシミュレーションをエクセルでプロトタイピングしてみました。(加減乗除だけで実現したのではない)つまらない実装ですが、(あくまで)暇なときに眺めて遊んで頂ければ、幸いです。

