• 締切済み

VBAユーザーフォームの操作について

いつもお世話になっております。 VBAでユーザーフォームのチェックボックス使用したデータを作成しています。 ●ユーザーフォームの仕様  1.各県名ごとにフレームを作成し、フレーム内に市名と全選択のチェックボックスを配置  2.各フレームの全選択のチェックボックスにチェックを入れると、フレーム内の市名のチェックボックスにチェックが入る  3.フレーム外の全選択のチェックボックスにチェックを入れると、全チェックボックスにチェックが入る。 ●オブジェクト名 ・フレーム  Frame1:神奈川県 Frame2:茨城県 Frame3:栃木県 ・チェックボックス  CheckBox1:フレーム外の全選択  CheckBox2~4:各フレームの全選択  CheckBox5~11:市町村名(横浜市~小山市の順) ●プロシージャ 1つ1つの動作をIFステートメントを使って記述しています。 ※IFの中身については、チェックボックスの数がもっと多ければ For Nextなんかを使ってもっとスッキリできますが、今回は数か少ないので羅列しています。 以上に関して、貼付ファイルのようなコードを記述してみました 一応仕様を満足する動作はしてくれるようですが・・・ ご指摘がありましたら、よろしくお願いします。

みんなの回答

回答No.1

IF A=True Then  B=True  C=True Else  B=True  C=True End If  ↓ B=A C=A  ↓ Dim isTrue As Boolean isTrue=A B=isTrue C=isTrue 2番目の書き方もありでしょうが、私のお勧めは3番目。理由は、2番目は判定の都度にフォームを参照するからです。3番目の場合は、フォームの参照は一度だけ。加えて、isTrue はメモリに配置されずにスタックエリアに記憶されるかも知れません。まあ、大した違いはありませんが・・・。

genta1019boston
質問者

お礼

早速の回答ありがとうございます。