マクロでいこう! ~ Excel活用HomePage ~

VBAでラクしたい ~Part 2~

こちらのコーナーでは、VBAの使い方を中心にご紹介していきます。
作者自身の経験から書いておりますので、本とかとは違ったコトを
書いてるトコロもあるかもしれません。 そういう場合は、良さそうな方を信じましょう(^_^;
TOPVBAでラクしたい ~Part 2~ > オプションボタンの機能を知ろう

オプションボタンの機能を知ろう

前回書き忘れましたが、全部のオブジェクト名が決まりましたので、そのように修正をして
から進めて下さいってことで、ひとつ宜しくお願い致します(^-^;

さぁ、また実際にコードを書いていくわけですが、どこから手をつけていくかと言いますと
表題の通りです。

え?オプションボタンとは何ぞや、ということですか。

カンタンに言ってしまえば、複数の選択肢の中からどれか1つを選ばせたい時に使うコント
ロールですね。従って、複数選択を許可する場合には使いません。そのような場合には、後
で触れると思いますが「チェックボックス」コントロールを使ったりします。

とりあえずオプションボタンは配置済ですので、まずは動きを確認してみましょう。
フォームを起動して、各オプションボタンをクリックしてみて下さい。

どうですか?どちらかだけが On の状態になりますよね。

これは"この2つのコントロールが1つのグループとみなされているため"、このように切替
表示になるわけです。コントロールを貼り付けただけで、あとは特に何も指定はしてません
でしたよね?これは"1つのフォームに対して、1組のオプションボタンであれば問題ナシ"
なのですが、例えばもう1組選択項目があって、そこでオプションボタンを使いたい、って
なった場合どうでしょう。

試しにもう2個オプションボタンを貼り付けて、フォームを起動してみて下さい。
ありり?ヽ(^o^;)丿4つのボタン間で ON/OFF が切り替わるようになってしまいましたね。

なぜかというと、明示的に「グループ」を指定していないためです。

オプションボタンはただ貼り付けただけですと、そこに存在するもの全てが「仲間」だと
思ってしまいます。友好的なのですね。 #なのか?(^_^;

ですので、「あっちとこっちは違うグループだよん」という設定をあらかじめしてあげねば
なりません。この設定は「プロパティ」で行います。

OptAddMode をクリックしてプロパティを表示させると、その中に「GroupName」というのが
あります。そのまんまですね(^-^;
ここに例えば「EditMode」とか設定してやりましょう。OptUpdModeも同じように設定してみ
て下さい。

こうしておいて、再びフォームを起動してオプションボタンをクリックしてみてください。

・・・どうですか?後から追加したのとは別のグループとして動いてますよねヽ(^-^ )

今回のフォームではオプションボタンを1組しか使用しませんので、この設定は必然では
ありません。ただ後々の機能拡張等を考慮すると、キチンと設定しておくにこしたことは
ないです。

今のがお分かりいただけましたら、さっき試しに貼り付けてみたオプションボタンは速やか
に取っ払ってしまいましょう(^-^;

で、次に何を知っておく必要があるかと言えば、このボタンはON/OFFの切替動作をするわけ
ですよね?そしてそれをきっかけに何か処理を実行させてやるわけです。

OptAddMode が ON のとき → 処理A
     〃    が OFFのとき → 処理B

とかいう形ですよね。ちなみに「○○のときは○、△△のときは△」みたいな処理は
「あぁぁ、If文みたいな条件判断処理を使うのね」などとウスウス勘付いてしまうわけです。
そうでなかったアナタは第一部から読み直しましょう。 #で、いいのか?(^_^;

「ぢゃぁ、ON/OFF はどこを見て判断すればいいの?」ということになります。

そしてその答えも「プロパティ」にありました。

「Value」というところをみて下さい。今はたぶん「False」になっていますよね。
試しにここを「True」にしてみると、どうでしょう・・・?
ON表示に切り替わりましたよね。ついでにもう一方も「True」にしてみると、こっちがONの
状態、さっきTrueに設定した方はOFF表示になってしまいました。もう一度Valueプロパティを
見ると、確かにFalseになってます。

このことから

Valueプロパティが True → ON 状態
      〃          False→ OFF状態

であることがわかります。

オプションボタンに関しては、最低限ココだけ押さえておけば処理は書けるような気がします。
他にもプロパティはたくさんありますが、意外と他のコントロールと機能的には同じだったり
しますし。

次回はこれを踏まえまして、実際の処理を書いてみましょうね d(^-^ )


では8/17まで、ごきげんよぉ~♪(^^)/~


TOPVBAでラクしたい ~Part 2~
Copyright (C) 2006 マクロでいこう!. All Rights Reserved.