昨日はExcelのVBAでコードを書いてたら時間がずるずるに溶けました。
ぶっちゃけ言うと、すでに私の望むべき動作をするコードは完成しているのです。とはいえ、動作がやや遅いと感じてしまったがのが運の尽き、どろどろと沼にハマってしまったのです。実に恐ろしいことです。ほんのコンマ数秒の動作の改善をするべく、使い慣れていない配列を組み込んだ改良をほどこしはじめたのです。
Excelというのはセルにデータをぺたんと貼りつけるのに時間がかかるのです。そりゃ1つのセルにコピペするだけなら一瞬ですが、10,000回とか、100,000回とか繰り返すとびっくりするほど時間がかかるのです。先に言っておくのを忘れていましたが、これってかなりマニアックな話なので、さすがですね、知らなかった、素晴らしい、センスありますね!、そうなんですか!、ぐらいの茶々を入れつつお気楽な気持ちで読み進めてもらえたら嬉しいです。もっと言うと、私は別にMOSとか持っていませんし、あくまでも好きでちょこちょこコードを書いたりする程度で、しかもExcelのVBAしかできません。Pythonとか触ってみたいと思いつつも、VBAであっぷあっぷしている状態だし、どうせならVBAを突き詰めたほうがええやんと思ってたりします。
話を戻しますが、配列というのは複数のデータを入れることができる箱みたいなもので、セルにデータをひとつずつぺたんぺたんと貼るより、配列にデータをどがしゃんとぶち込んで、それから範囲指定してべしゃーっとぶちまけたら、セルにデータを貼る回数は1回なので時間の短縮になるのです。目の前の風景を山下清画伯のように貼り絵で表現するのは大変ですが、カメラで撮ると一瞬で終わってしまうのと同じです。ただ、山下清の貼り絵はものすごく価値がある一方で、私が適当に撮った写真には価値がほとんどないという問題もあるにはあるのですが、そういうことを言い出すとわけがわからなくなるのでそっとしておいてください。
というわけで、そんな感じの作業をしていたら時間が溶けて消えてどっかに行ってしまったので時間泥棒は私の時間をすぐに返すようにお願い致します。合掌。