Excel

2005年04月21日 木曜日

久しぶりにExcel VBA

今日は午後から頼まれたExcel VBAのマクロ書き。1つのファイルに10個くらいのデータ系列があって、それぞれに対して単回帰分析をしたいらしいのだが、そんなファイルが100個くらいあるんだそうな。ということで、作りためていたライブラリを組み合わせて、ちゃきちゃき作ってみた。2.5時間で完成。
マクロを渡したところ… _動かないんですけど!_というご意見をいただいたので調べてみたところ、マクロはExcel2002で作ったのだが、実行環境はExcel97で、その部分の非互換性な部分だった。身の回りにExcel97は残しておく必要がありそうだ。(だれだよ、互換性でMS Officeが優れているなんていったのは、些細な非互換性が非常に腹立たしいのだけど…)

2005年04月13日 水曜日

続・Photoshopのスクリプト機能

今日はプログラミングしてみることにする。いろいろめんどくさいので、Java Scriptで遊んでみることにする。とりあえず画像解像度を変更するプログラムなど。ダイアログボックスで縦か横を選び、サイズを入れると設定された値に応じて、サイズが変更となる。スクリプトはJava Scriptの場合「PhotoshopCS」のディレクトリの中の「プリセット」ディレクトリの中にある「スクリプト」ディレクトリに適当な名前を付けてコピーする。

2005年03月18日 金曜日

昨日の続き

今日は昨日の続きでひたすら行列計算。ちゃんとした計算結果を得るには結構派手に計算機資源がいりそう。少なくとも準備するデータだけでどの程度メモリが必要か計算してみたけど、64MBのメモリを積んだWindows98マシンでExcelで計算させるには無理がありすぎました… (少なくともExcelの1枚のシートに入力データの1%も入力できない。むろんデータ入力も完全に自動化せねばならないけど。ロジックだけ考えて非現実的すぎるので、しばらく放置。)
むろん今やろうと思っていることに必須の計算ではないので、別に良いんだけど。(この計算はプロセスの装置で勝手にやってくれる。凄くでかい計算機がついていて勝手にやってくれるし。簡単なシミュレーションだけしたかったんだけどね…)

2005年03月17日 木曜日

2重積分

今日は1日積分と行列計算に明け暮れてました。いやぁ久しぶりに算数の計算をしたんですが、まだ不定積分が分かっている関数の2重積分とかだったら、余裕で計算できますねえ。今日の積分計算は2変数の正規分布関数を適当な区間で2重積分なので、まぁあまり難しくはなかったな。数値計算するのは多分大変だけど。まぁあとでMathematicaも使ってみましたが、使い方を思い出すだけで半日くらいかかりますねえ。(でも使えるようです。好きなツールだしねえ。)
行列計算はざっくりとだけやれば良かったのでExcelで適当にやらせてみたが、和の取り方がもうちょっと手が込んでいそうなので、計算してみたものの近似にすらならん… うーむ。
ちなみに僕の中では計算すれば何とかなるものは数学の範疇ではありません。すべて算数にすぎません。やっぱ物理数学とかはさんざんやっただけあって、手で計算を覚えてますな。さすがに部分積分とかはめんどくさいのでやりたくないけども。

2004年10月07日 木曜日

Excel VBAは究極の「変数 = 箱」モデル

某MLに書いた内容ですが、僕が遭遇したExcelVBA的なものの発想法について。
ExcelVBAでのプログラミングでは、8月8日の日記福盛さんの日記で触れられているように、「VBAでエクセルのマクロを作る初心者がですね、変数の代わりにセルを使うんですよ」と言うような、matz日記で話題になった究極の「変数 = 箱モデル」に相当するようなコードを書く人が結構多い。
つまり、「ExcelVBAは普通のVBと違って、「手動で」かつ「視覚的に」変数領域を割り当 てられる、2次元でアドレス指定するポインタを持つBASICである。」と言い換えても良さそうですし、暴論を言えば、「一流のExcelVBA使いは1次元のポインタしかないCのポインタなど目をつぶって使えないとならない訳だ(暴論)。分からないなどと言わせぬ!」ということになる。まぁ実際に一流の(分かった気になって、有頂天になって、ナニか勘違いしている人_のことを言う)ExcelVBA使いのみなさんはこういうポインタに相当するものには名前をつけたりしなくて「全部直接セル参照」という神業をするので、構造化言語とかOOPとかにジャブ付けの頭しか持ち得ない僕なんかから見るとある意味「すげーっ!」(絶対そうなりたくない)と思ったり、頭の中がどうなっているのかかち割って見てみたいなんて思っている_3流のへっぽこVBA使い_なので、せめて妥協点として、Rangeオブジェ クトに名前をつけてアクセスしたくなっちゃいます。
1次元のRange領域を作ってやれば普通のポインタと同じような感覚(アドレス指定はCellsプロパティで2次元指定できるけど)ですかね。領域の割り当ては自分でやらないと駄目ですが… まぁ_ご利用は計画的に

たとえば「1から10までの話を求めたい」と言う例題を考える。和を求めたいRangeオブジェクトを渡すと「Rangeの和を求めるワークシート関数を文字列として返す関数」なんてものをつくってやれば、少し楽ができそうし、応用もあるのは手を付けてはいけないと思いますねえかな? まぁ実際にこつこつアルゴリズムを書くのではなく、計算などはすでにあるExcelのワークシート関数にしまえと言うことになります。(まぁ_手抜き_とも言う) 和を求めるくらいだとあまりありがたみが出ないが、同じ手間でRangeの最大・最小とか2個のRangeオブジェクトを関数に渡して最小自乗法とかさくっと出来ちゃったりするので、まぁ楽チンですね。(実際は統計関係の計算をするときはExcelのバグを知り尽くしてないと危ないですが。まぁ統計をちゃんとしたい時はExcelは使っちゃいけません。ちゃんと統計ソフトを使いましょう。)
ということでコード例。(基本的にVBでプログラムを書くときは型宣言を必須にしましょう。そうでないと全部Variantになったりしますから。あとDim文の使い方も意図しない型宣言になったりしますので注意しましょう。)

2004年09月16日 木曜日

今日は1日中Wordで文書書き

期末も近いのでたらたら報告書書き。ということで、しばらく使ってなかったWordの使い方などを再構成中。まぁWordはシステマティックに使っていたので、何年も使っていなくても人が知らない機能はサクサク出てくるんですが、メニューの配置がだいぶん変わっていてかなり手間取る。僕が使い込んでいたのはWord1.2とWord6.0までで、そのあとは文書書きはLaTeX。会社に入ってからはExcelで文書書きを強制されていたので会社ではExcel、家ではテキストしか用事がないからEmacsで編集というスタイルに落ち着いているわけだが…
数時間格闘して、とりあえず図表番号の付け方、クロスリファレンスの張り方を思い出す。あとはがんがん書くだけだ。ただある程度書いて報告書形式のスタイルを適用しようと思ったら… 全然インストールされてないじゃん! せめて基本的なスタイル集・オブジェクト編集ツール(数式エディタとかExcelの何個かのアドイン)・VBAのヘルプがインストールされていないと、まるでお仕事にならないんですけど!
まぁUnix系な人やWordを全然使いこなしていない人には、MS-WordがEmacsの次に好きな文書書きツールであるって言うと、_気でも狂ったんじゃないの?_とか言われそうだが、使い勝手の良いアウトライン・エディタって、身近にあるのはEmacsとWordしかない。まぁ僕は基本的にはアウトラインモードで項目をメモ状に書いて、前後関係を考えて、おおざっぱな文書構造を書き連ねて、詳細な段落を書くという非常にトップダウンな文章の書き方をするので、アウトラインエディタが必要なんです。

2004年08月08日 日曜日

Lightweight Language Weekend 2日目

2日目の前半は最近はやりのblogな話題。僕は基本的に興味がないのだが一応お勉強のため… 大きなblogサイト(Livedoor Blog)やはてなダイアリーなど)の方が来ていたので、個人的には「(政府や各種圧力団体などから圧力がかかりそうな)非常にまずい記事の削除要請があった場合にどのように考えるかの立ち位置」を効きたかったのだが、LLには関係ないし、契約で乗り切れる話かもしれないし、あまりにダークなんで聞けなかった。聞いておけば良かったかな? LLの最も巨大な応用先であることは認めるが、blogだけでこんなに時間を取るんだったら他の話が聞きたかった。
Lightning Talkは詳細はあまり覚えてない。(なんせ半分くらいBitKeeperと話をしていたので。) 平内さんの「木のマッチ」では、Schemeを使用した木構造のデータに対して正規表現みたいなパターンマッチをする話。さくっとXML VallidatorがかけるあたりがSchemeのマクロらしい。久井さんの「Gauche-glによる、3次元図形言語」では、Gauche-GLとストリーム(SICP Chap3の後半)を使ったアニメーションによるプレゼンでGaucheではこんなこともできるのかと言うこともあってこれまた面白かった。
高橋さんの「日本Rubyの会設立」の話は要点とをついたインパクトのあるプレゼンで、こうあるべきかと思ったり… 早川さんの「LL侍」は最初は照れが見えたが、吹っ切れたあとはかなり面白かった。(もう一段切れが欲しかったかな。)

2004年07月17日 土曜日

起きるの遅すぎ…

起床したら14時というのは、いったい…

Panasonic / Let’s Note R3(CF-R3D)

いろいろ検討してきた結果、どうにもならない状況に追い込まれているので、結局購入。追加した物はメモリを256MBほど。(あわせて512MBとなる。)
実物を見たときに_軽いなぁ_と言う印象だったが、実際に全てが入った箱の重さもえらく軽かったし、取り出してみて_本体とバッテリの重さが同じくらい_と言うところにもびっくり。(あわせて1kg無いのにねえ。)
早速パーティションを切り分けなおして、WindowsXPを再インストール。(HDDの中にリカバリディスクが入っているので結構速い。) 10日の日記に書き忘れたが、WindowsXP Home Editionではなく、Professional Editionが入っていることと、Microsoft Officeが入っていないことがさらに高評価なところである。(だいたいパーソナルなモバイル環境にOfficeは要りません。尤も自宅のメイン環境にもOfficeは入ってないし、家に帰ってまでExcelのアイコンを見たくないので。)
Windowsの再インストール+Windows Updateが終わったところで、おもむろにDebian GNU/Linux (Sarge)をインストールしてみる。インストーラーが素晴らしく良くなったと言う噂を聞いていたので期待していたのだが、これはなかなか良い感じ。インストーラーは直感的に操作できればいいのであって、バリバリGUIである必要はない。感じとしてはFreeBSDのインストーラーと同じ程度かな。最小限のインストールをしたあとに、必要な物を一気にネットワーク経由でapt-getとなるわけだが、回線を速くしてしまうとネットワークインストールに限るという状態。さくっとインストールが終わったのであるが、なぜかXが起動しない… うーむ。

2004年01月31日 土曜日

TLUC月末勉強会に出席

今月は本来はRubyの勉強会の予定だったのだが段取りが付かなかったので、急遽東北PostgreSQLユーザー会の高橋 直人さんにオープンソースで開発されている大規模な使用に十分耐えうるRDBであるPostgreSQLの導入の話をしていただいた。最近CGIのデータなどはテキストファイルではなくAPIが決まったDBに置いておいた方がよいのではないかと言う結論に達しつつある(遅いか)ので、PostgreSQLかMySQLかなのかなぁと思っていたが、とっかかりがなかったので、ずっと放置状態だった。今回の勉強会では簡単なテーブルの書き方、psqlでのクエリーのかけ方が分かったので、暇な時間を見つけて使い方を学んでいこう。
それにしてもRDBを使っているのにDBの中に入っているレコードの順序が気になる人がいるのね… ぎりぎりのパフォーマンスが気になるなら多少なりともDBの最適化を気にした方がいいと思うけども、小規模なデータの集まりだとDBに任した方が楽チン。普通クエリーを書けるのが当たり前なのだが、Excelみたいな表計算ソフトやAccessのテーブルみたいに_下手に中身が見えるものは手動で並び替えができちゃって案外良くないのかもしれない。_(頭堅い人多いのよね…)

2004年01月02日 金曜日

「南国のバラ」と「皇帝円舞曲」と「美しく青きドナウ」

正月と言えば、ウィンナーワルツと言うことで、久しぶりにウィンナワルツの入ったCDを取り出してみる。今年はVPOのニューイヤーコンサートを見逃したので、CDで我慢という訳なのだが。(すっかり忘れていたとも言う。) 今日は出かける予定もあったので車でワルツを聴きながら移動というのもなかなか良いかもしれない。
「美しく青きドナウ」は言わずとしれたヨハン・シュトラウス II世の名曲で、僕がクラッシックを聴き始めたきっかけになった曲なので、クラッシックを聴き始めた高校生の頃の思い出が詰まった曲でもある。スタンリー・キューブリック監督の映画「2001年宇宙の旅」で、宇宙船が宇宙空間を移動するシーンで印象的に使われていたのでそのイメージが抜けない曲だけども、華やかで流麗な曲と言えばこの曲が真っ先に思い浮かぶ曲で、今でも短い管弦楽曲の中ではトップクラスに気に入っている曲である。
「美しく青きドナウ」と同じくらい長く愛聴しているワルツといえば、「皇帝円舞曲」であろうか。出だしから豪華で、特に中盤部の華麗な展開がやっぱりたまらない名曲だと思う。車を運転している時に気分が良くなっちゃう曲はこの曲を置いて他にあるまい。(「美しく青きドナウ」や「ウィーンの森の物語」ほど曲に物語性が無いのが良いのかもしれない。)
「南国のバラ」は最近見直した曲である。ひっそり始まるのであるが、4つの親しみやすいワルツが交互に現れて非常にまとまっている曲。この曲も車を運転している時に聴くとなかなかいい気分に浸れる曲かと思う。
シュトラウスのワルツをはじめとした曲はどれも華麗で聴いていて気分が良くなる曲が多く、他にも「ウィーンの森の物語」や喜歌劇「こうもり」序曲や「春の声」といった、旋律を覚えやすくて、それなりに短くまとまった名曲が非常に多いと思う。これから聴きたいと言う人は案外僕と同じようにウィンナワルツからはいると良いのかもしれない。
振り返ってみれば、大学時代にリヒャルト・シュトラウスの交響詩やグスタフ・マーラーや交響曲にはまって以来、非常に複雑で暗い曲ばかり聴いてきた気がする。ウィンナワルツはずいぶん遠ざかっていたんだけども、こうして聴き直すとなかなか素晴らしいので、これを機にまたしばらく聴くことにしよう。(うちにあるのは、カラヤンの87年のVPOのニューイヤーコンサートとベスト盤しかないので、これも良いという意見があればどしどしお待ちしてます。)