Lesson20(アシスタント3)
今回もまたまたアシスタントです。アシスタントを使うことをすっかり気に入って
しまいましたので、もう一回だけお付き合いを(^^ゞOfficeアシスタントは何かの拍子に動いたりしますよね。VBAではアシスタントの
動作を指示する事が出来ます。それではいつもの様にVBEを立ち上げて、ユーザー
フォームを挿入して下さい。いろいろな動作をコンボボックスから選んで、コマンド
ボタンをクリックしたら、その動作をするというプログラムを作ってみましょう。コマンドボタンとコンボボックスを使うので、最初にユーザーフォームにこれら
二つのコントロールをツールボックスから選んで貼り付けて下さい。コマンドボタンの
キャプションは「まんまちゃんアクション!」としましょう。みなさんがお使いの
アシスタントの名前に合わせて下さい。いがちんさんと未知さんはカイル君ですね。
コンボボックスはコマンドボタンの下側に配置して下さい。
Office2000ではアシスタントに35種類の動作が指示出来る様になっています。
Office97ではいくつか、ちょっと今から調べますね(ThinkPad530CSを起動中・・・)
97では34種類の様ですね。ほとんど変わらないから、今回のも97でも2000
でも動くと思います。動作確認は2000でやってます。35種類の動作から、今回はこんな動作を選んでみました。
下を向かせる:msoAnimationGestureDown
左を向かせる:msoAnimationGestureLeft
右を向かせる:msoAnimationGestureRight
上を向かせる:msoAnimationGestureUp
こちらへ大袈裟に向かせる:msoAnimationGetAttentionMajormsoAnimation~はAnimationプロパティと言って、アシスタントの動作を指示するには
この様に使います。Assistant.Animation = msoAnimationGestureDown
それではコードを書いてみましょう。
最初にグローバル変数としてactionという配列を宣言しています。これに動作の
名前を入れて行きます。文字列専用の配列としていないんですが、この様に文字を
入れても大丈夫です。間違えないためにも Dim action(5) As String としている
方が良いんですが(^^;コマンドボタンクリックのサブルーチンで動作指示をしています。Select Case
ステートメントを使って、沢山の場合に対応しています。もちろんIf Then Else
ステートメントを使っても書けます。コンボボックスから選んだ行の番号で動作を
分けているのがわかりますね。ユーザーフォームイニシャライズのサブルーチンでは、配列actionに動作の名前を
代入して。コンボボックスの各行に割り当てています。For Nextステートメントの
後のコンボボックスへのaction(0)の指定は、最初の状態を決めるためです。それでは実行してみましょう。アシスタントがコンボボックスから選んだ動作を
やってみましたか?この他にも沢山の動作をやりますね。いろいろ試してみて
下さい。味気ないプログラムに、アシスタントを表示させて結果によって動作を
変えて動かせてみると楽しくなりますよ(^o^)ご意見・ご感想は