Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3241 / 13646 ツリー ←次へ | 前へ→

【63336】オプションボタンの設定 まい 09/10/28(水) 13:51 質問[未読]
【63338】Re:オプションボタンの設定 seg 09/10/28(水) 15:21 発言[未読]
【63349】Re:オプションボタンの設定 まい 09/10/29(木) 9:42 お礼[未読]

【63336】オプションボタンの設定
質問  まい  - 09/10/28(水) 13:51 -

引用なし
パスワード
   こんにちは。

ユーザーフォーム上に、
Frame3,Frame4,Frame5,Frame6 の4つのフレームがあります

今のままだと、Frame3でオプションボタンを一つ選択でき、Frame4でもオプションボタンを選択できちゃう為、2個選択している状態になってます

上記4つのフレーム内にあるオプションボタンの選択を1つだけしか選択できないようにするにはどうしたらよいのでしょうか?

どうしてもうまくいかなくて困っています

どうかよろしくお願いします
あともう一つなんですが…
一度、●に選択したオプションボタンを○に戻す方法はないでしょうか?


今のコードは、とりあえず、複数オプションボタンがTrueになっていたら、Falseに戻して、選択し直してもらうようにしてあります

Private Sub CommandButton1_Click()

Dim cntFrm As Integer, cntOptTrue As Integer
Dim i As Integer, j As Integer

cntFrm = 6 'フレームの数

For i = 3 To cntFrm
  For j = 1 To Me.Controls("Frame" & i).Controls.Count
    If Me.Controls("Frame" & i).Controls(j - 1).Value = True Then
      cntOptTrue = cntOptTrue + 1
 
    End If
  Next j
Next i
If cntOptTrue = 1 Then
 Else
For k = 3 To cntFrm
  For p = 1 To Me.Controls("Frame" & k).Controls.Count
    Me.Controls("Frame" & k).Controls(p - 1).Value = False
  Next p
Next k
MsgBox "WO選択を複数選択しているか、未選択です"
Exit Sub
End If

【63338】Re:オプションボタンの設定
発言  seg  - 09/10/28(水) 15:21 -

引用なし
パスワード
   ▼まい さん:
う〜ん、そもそもどうして複数フレーム内にそれぞれ
オプションボタンが配置してあって、それらを全て排他的に
したいのでしょう。

例:
┌同時選択数────┐
│●1つ ○2つ ○3つ │3つ排他
└─────────┘
┌上書き保存────┐
│○する  ●しない │2つ排他
└─────────┘

など、項目毎に分けるのがフレームです。
Frame3とFrame4が関連してるのであれば、同じフレームに入れて
ラベルで明示するのが良いかと思うのですが。

>一度、●に選択したオプションボタンを○に戻す方法はないでしょうか?
オブジェクト名が"OptionButton"で統一されてるなら

For i = 0 To Me.Controls.Count - 1
  If (InStr(Me.Controls(i).Name, "OptionButton") > 0) Then
    Me.Controls(i).Value = False
  End If
Next

【63349】Re:オプションボタンの設定
お礼  まい  - 09/10/29(木) 9:42 -

引用なし
パスワード
   ▼seg さん:

アドバイスありがとうございます

もう一度、オプションボタンの設置を考え直してみます

3241 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free