人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAについての質問です。
ワークシートにアクティブXコントロールのオプションボタンを配置しました。
そのうちの1つをクリックすると既定のユーザーフォームが表示されるようにしたいと思っています。
クリックする対象は既に選択されている(●になっている)ボタンを含みます。
参考になるコードをご紹介ください。
お願いします。


●質問者: wayan
●カテゴリ:コンピュータ
✍キーワード:VBA アクティブ エクセル オプション クリック
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● SALINGER
●60ポイント

オプションボタンの場合既にチェックが付いていると、

クリックしてもイベントが発生しないのが問題になるようです。

そこで、チェックボックスはクリックするたびにイベントが発生するので、

チェックボックスをオプションボタンと同じ動作するようにしてしまえば

一応同じ機能が実現できます。

まあ、○が□になるという難点がありますが。


例えばチェックボックスを3つ用意したとして、

標準モジュールの先頭に

Public blnEnable As Boolean

シートモジュールに

Private Sub CheckBox1_Click()
 If blnEnable Then Exit Sub
 blnEnable = True
 CheckBox1.Value = True
 CheckBox2.Value = False
 CheckBox3.Value = False
 Application.EnableEvents = True
 blnEnable = False
 
 UserForm1.Show
End Sub

Private Sub CheckBox2_Click()
 If blnEnable Then Exit Sub
 blnEnable = True
 CheckBox1.Value = False
 CheckBox2.Value = True
 CheckBox3.Value = False
 blnEnable = False
End Sub

Private Sub CheckBox3_Click()
 If blnEnable Then Exit Sub
 blnEnable = True
 CheckBox1.Value = False
 CheckBox2.Value = False
 CheckBox3.Value = True
 blnEnable = False
End Sub

こんな感じにコードすれば、チェックボックスをオプションボタンと同じ動作にして

既にチェックされている場合でもフォームを表示できます。

http://q.hatena.ne.jp/

◎質問者からの返答

そうですか。オプションボタンは既にチェックが付いていると、クリックしてもイベントが

発生しないのですか。

いや、実はオプションボタンの数も好きなだけ追加できるようにも考えておりまして、そうするとご紹介

頂いた方式のコードにはどのように応用すればよろしいでしょうか。

「オプションボタン名」に変数などが使えるものなのでしょうか。

また、既にチェックが付いていることでの不都合は都度オプションボタンをクリアする(全部○にする)

ことで対応が可能なのでしょうか。

重ね重ねの問い合わせで恐縮ですがよろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ