何が何でも毎日更新!どんなにネタが無くても意地でも更新!コメントも自分でつける!
公開日時: 不明
うーむ、少しでも気を抜くとすぐに更新が疎かになるな。
昨日は結局徹夜になってしまい、今日はそのまま検収のチェック作業へ。午前中に担当者とあらかじめ答え合わせをして万全を期しておく。が、そこで問題が見つかった。計画のバーをクリックしても詳細情報が表示されない…というかそんなプログラムは組み込んだ覚えがないwつまり抜け。時間も競ってたし、なんとか1Hくらいで片付けねば後で不穏な事態になるのは目に見えてる。何とかしなくては。そもそも、そういう複雑なギミックを仕込むんだったらもともと自由度の高いVBで組んでしまうものなんだが、今回は時間的な問題もありExcelで突貫作業で作ったため、面倒なので後回しにしてたのだ。つまり、コレといったノウハウさえもない。早速ExcelのVBAを開いて研究を始める。処理の流れ的なものは頭にあるんだが、それを実現するためのボキャブラリがないため、それらを調査することから始まる。現場で時間もないのに何をやってるんだか…。シェイプをクリックしたイベントをフックするためにはOnActionプロパティに文字列でマクロ名を指定すればよいというのはすぐに分かったんだが、なんとマクロを呼び出した後にどのシェイプから呼び出されたのかイベント内で判別する方法がない!画面上には数十個〜数百個のシェイプが並ぶのでそれが出来ないと間違いなく個別の情報を表示するなんて実現不可能。一生懸命調べてみたが、そもそもシェイプをクリックしてもシェイプにフォーカスが当たってないため、Active〜系のプロパティでは取得が困難っぽい。しかし、呼び出されたマクロに引数はない。う〜む困った。。。
結局、結論から言えば、かなりの力技で回避した。まず5000個の連番付きのマクロをExcelとテキストエディタで作成し、情報表示プロシージャへインデックス引数付きでリダイレクトさせるジャンプテーブルとする。次にシェイプのマクロ名にその連番でマクロを登録しながら配列変数に参照用のID情報を格納。情報表示処理内では指定されたインデックス番号から配列変数内の参照用IDを取り出してクエリを発行するようにした。時間もなくてあせりながらの作業だったが、動かしてみたらすんなり巧くいった。我ながらなかなかキレてるぜ。何とかぎりぎり間に合った。
実はExcelはそんなに詳しくないので他に良い方法があるなら掲示板で教えて欲しい。書いてくれた人にはサイン入りスティックをプレゼントしよう。犬の躾くらいには使えるかも。
んで、夜はセミメンバーで練習。誰がメインというわけではないが、みんなで音を合わせながら各自おのおのの問題点を挙げていく。俺はロールが出来なくて悔しかったから絶対に何とかしてやる。っていうか徹夜明けで10時から2時間はきついっすよマジで…orz
K氏はまだ5曲目覚えてなかったw次の練習は大丈夫かぁ〜?(オレモナー
公開日時 | 不明 |
---|---|
本文文字数 | 1252文字 (タグ込み) |
URL | https://orca.xii.jp/br/diary/diary.cgi?id=ys;date=20050330 |
コメントはありません。