GEN MUTO'S HOMEPAGE > Cell_雀公式サイト > 不定期コラム

Cell_雀 不定期コラム 第十五弾!
 
 冴子先生モード開発秘話
 
  
 
 みーたか、きみーわー♪ 冴子先生モードー♪ みなさん!知ってますか?冴子先生のことを!
 


ドキドキCクラブ © GEN MUTO

 
 だりだ!?それは??という方も多いでしょうから簡単に紹介しておきますと…。Office97以降に搭載された機能のなかにアシスタント機能というのがあります。この中の一人が冴子先生です。
 (デフォルトではたしかイルカのはず)
 
 この冴子先生を密かに熱愛している方々がいて、なんと隠れファンクラブまであるそうなのですが、Cell_雀のご紹介サイトコメントの中にも、冴子先生モードを作ってくれ!すっぽんぽんにしてくれ!!という熱い?リクエストがありました。
 ま、実際にすっぽんぽんにするのはかなり難しそうなのとMicroS○ftからクレームがつきそうなのでアレなんですが…冴子先生と麻雀をすることくらいならなんとかなりそうです。
 
 麻雀好きはいっぱいいる>冴子先生の隠れファンもたくさんいる>その人たちは冴子先生と麻雀を打ちたいかもしれない>きっとニーズがあるぞ!>じゃ作ろう!(マジです)
 なんか開発秘話のときとあまり変わらないですね(汗)…。
 
 VBAの中に、Officeアシスタントを操作する機能がありますので早速使ってみることにしました。アシスタントを表示させるようにして、そこにバルーンという「フキダシ」をつけてその中にメッセージを表示させればOKのはずです。
 まずは普通の処理でやって見ましょう。
 「ムムム…」
 一回ごとにメッセージが出てOKクリックしないと先に進めないジャン…。
 これではゲームにならないので、出たメッセージが勝手に消えるようにしたいのですが…。
 HELPを見てみる。そうか。バルーンのモードには三種類あるのか…。
 モーダルとモードレスとオートダウン。モーダルはバルーンがアクテイブになるのでマズイ…。それにあのうっとーしーOKボタンが出るし…、モードレスか…コレはいいじゃないか!さらにMSDNでモードレスの詳細情報を確認してみる。
 
 ………。モードレス、しばり多いじゃん…。がっくし…。
 オートダウンは…、どっかクリックしなきゃ先に進まないのか…。モーダルと大差なし。
 さあ!煮詰まりました(汗)!
 
 やりたいことは実に簡単なのに…。
 Cell_雀の進行中、要所要所で冴子先生がちょこっとしゃべって(バルーン出して)、そのフキダシが勝手に閉じれば…それでもう大満足なのですが…。
 とりあえず考えててもしょうがないので、モードレスをもっと研究してみましょう。そっかーコールバックというプログラムを別に用意しておいて、その中でバルーン消せばいいわけね…。フムフム。
 すぐに消えちゃうとセリフが読めないから、数秒表示させて…。オッケー!なんとかでけた!
 ゲームスタートして…、「ガーン!」フキダシが真っ白けでセリフが出ないジャン。
 もうこのあたりで、冴子先生モード…お蔵入りの可能性が…。
 
 「きっとセリフを表示させる方法があるはず!これが上手くいったら業務アプリの進捗状況をアシスタントにしゃべらせるなんて応用もきくじゃないか!そうだ!お仕事に役立つんだ!だからこれは仕事なんだ!もう勝手にそうとしてしまおう(笑)!」
 というわけで、このあたりのプログラムは会社でちょこちょこ作ってます(笑)。

 どうもコールバックのプログラムの中でバルーンを消すのがまずいみたいです。コンピュータはおバカなので、ニセのコールバック?を用意してバルーン消すのは本体のプログラムからやってみよう!おお!イケそうじゃん!
 
 ゲームスタートして…。がっくし…。またもやフキダシは真っ白けなのです。
 「もう本当にこれは無理なのかもしれない。きっとそういうMicroS○ftの仕様なんだ…」
 そうあきらめかけていたとき、脳裏にあるプログラムのことが浮かびました。
 「そういえば以前、メッセージボックスを自動的に消すプログラムのサンプルを作ったことあったぞ…、あれを応用できないかなあ?」
 早速、そのプログラムを調べてみます。
 「あれ?このプログラム、時間制御のコードが違う!?」
 
 フキダシが出たときにプログラムの進行を一時停止するのですが、そのやり方が違っているではありませんか!
 「ひょっとしてコレでやったら動くんじゃ…」
 ダメ元です!私は早速、その時間制御のコードを移植してみました。
 「おおおー!冴子先生がしゃべってるー(涙)」
 私はこの時の感動を生涯忘れることはないでしょう。(コレばっか…)
 まるで人間のようにイキイキと、冴子先生は指定されたイベントが発生したときに動き、そしてセリフを表示するのです!
 意気揚々とした私は、次にセリフに合わせたアニメーションをそれぞれに指定し、セリフのバリエーションも増やしてみました。
 今では「冴子先生モード」、本当に冴子先生と麻雀しているかのようにバリエーション豊富な「動き」で楽しませてくれます。
 もっとバリエーションを増やせるはずですが、それは次のバージョンアップにとっておくことにしましょう。
 
 それにしても、冴子先生カワイイです。プログラムしていて妙な気分になりました(笑)。
 
 追記:
 セリフが表示されるようになった後も時折空白のバルーンが表示されるというバグに悩まされましたが、前回コラムでご紹介した角田氏のアドバイスで現在空白バルーンのバグは解消されてます!
 角田さん、その節は本当にありがとうございました。
 
 
 

>> 次の話にすすむ