Lesson20(アシスタント3)
 今回もまたまたアシスタントです。アシスタントを使うことをすっかり気に入って
しまいましたので、もう一回だけお付き合いを(^^ゞ

 Officeアシスタントは何かの拍子に動いたりしますよね。VBAではアシスタントの
動作を指示する事が出来ます。それではいつもの様にVBEを立ち上げて、ユーザー
フォームを挿入して下さい。いろいろな動作をコンボボックスから選んで、コマンド
ボタンをクリックしたら、その動作をするというプログラムを作ってみましょう。

 コマンドボタンとコンボボックスを使うので、最初にユーザーフォームにこれら
二つのコントロールをツールボックスから選んで貼り付けて下さい。コマンドボタンの
キャプションは「まんまちゃんアクション!」としましょう。みなさんがお使いの
アシスタントの名前に合わせて下さい。いがちんさんと未知さんはカイル君ですね。
コンボボックスはコマンドボタンの下側に配置して下さい。

 Office2000ではアシスタントに35種類の動作が指示出来る様になっています。
Office97ではいくつか、ちょっと今から調べますね(ThinkPad530CSを起動中・・・)
97では34種類の様ですね。ほとんど変わらないから、今回のも97でも2000
でも動くと思います。動作確認は2000でやってます。

 35種類の動作から、今回はこんな動作を選んでみました。

 下を向かせる:msoAnimationGestureDown
 左を向かせる:msoAnimationGestureLeft
 右を向かせる:msoAnimationGestureRight
 上を向かせる:msoAnimationGestureUp
 こちらへ大袈裟に向かせる:msoAnimationGetAttentionMajor

msoAnimation~はAnimationプロパティと言って、アシスタントの動作を指示するには
この様に使います。

        Assistant.Animation = msoAnimationGestureDown

 それではコードを書いてみましょう。

 最初にグローバル変数としてactionという配列を宣言しています。これに動作の
名前を入れて行きます。文字列専用の配列としていないんですが、この様に文字を
入れても大丈夫です。間違えないためにも Dim action(5) As String としている
方が良いんですが(^^;

 コマンドボタンクリックのサブルーチンで動作指示をしています。Select Case
ステートメントを使って、沢山の場合に対応しています。もちろんIf Then Else
ステートメントを使っても書けます。コンボボックスから選んだ行の番号で動作を
分けているのがわかりますね。

 ユーザーフォームイニシャライズのサブルーチンでは、配列actionに動作の名前を
代入して。コンボボックスの各行に割り当てています。For Nextステートメントの
後のコンボボックスへのaction(0)の指定は、最初の状態を決めるためです。

 それでは実行してみましょう。アシスタントがコンボボックスから選んだ動作を
やってみましたか?この他にも沢山の動作をやりますね。いろいろ試してみて
下さい。味気ないプログラムに、アシスタントを表示させて結果によって動作を
変えて動かせてみると楽しくなりますよ(^o^)


次へ進む


Since 15/06/1999ご意見・ご感想はご感想お待ちしております。具体的なご質問は会議室にお願いします。