Excel VBA質問箱 IV

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

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


28911 / 76738 ←次へ | 前へ→

【53117】Re:Optionbuttonのチックしていないメッセージを出す方法
発言  Hirofumi  - 07/12/16(日) 1:57 -

引用なし
パスワード
   UserFormに、OptionButtonで選択するグループが複数有る場合なんか
こんな事をすると楽かも?

例えば、UserFormに、Frame1が有り、その中にOptionButton1〜OptionButton3
Frame2が有り、その中にOptionButton4〜OptionButton6が有るとします

UserFormのコードモジュルールに記述

Option Explicit

'Groupの値取得クラスの配列
Private clsGroup() As Class1

Private Sub UserForm_Initialize()
  
  Dim i As Long
  Dim j As Long
  
  'ClassにOptionButtonを設定
  For i = 0 To Controls.Count - 1
    If TypeName(Controls(i)) _
              = "OptionButton" Then
      j = j + 1
      ReDim Preserve clsGroup(1 To j)
      Set clsGroup(j) = New Class1
      clsGroup(j).Button = Controls(i)
    End If
  Next i

End Sub

Private Sub UserForm_Terminate()

  Dim i As Long
  
  'Classを破棄
  For i = 1 To UBound(clsGroup)
    Set clsGroup(i) = Nothing
  Next i
  
End Sub

Private Sub CommandButton1_Click()

  With Frame1
    If .Tag<>"" then
      MsgBox .Caption & "Groupの" & .Tag & "が選択されています"
    Else
      MsgBox .Caption & "GroupのOptionが選択されていません"
    End if
  End With
  
  With Frame2
    If .Tag<>"" then
      MsgBox .Caption & "Groupの" & .Tag & "が選択されています"
    Else
      MsgBox .Caption & "GroupのOptionが選択されていません"
    End if
  End With
    
End Sub

VBEの「挿入」→「Classモジュール」でClassモジュールを追加し
Classモジュールの名前を「Class1」とし以下を記述

Option Explicit

Private WithEvents optButton As MSForms.OptionButton

Public Property Let Button(ByVal optNewValue As MSForms.OptionButton)

  Set optButton = optNewValue
  
End Property

Private Sub Class_Terminate()

  Set optButton = Nothing
  
End Sub

Private Sub optButton_Click()

  'OptionButtonがClickされた場合、
  'OptionButtonのCaptionをフレームのTagに代入
  With optButton
    .Parent.Tag = .Caption
  End With
  
End Sub


上記のコードでは、OptionButtonが選択されると、
選択されたOptionButtonの有るFrameのTagに、選択されたOptionButtonのCaptionが代入されますので、
FrameのTagを調べ、Tagが""の場合OptionButtonが選択がされていず、
Tagが""でないなら、OptionButtonが選択がされている事に成ります
0 hits

【53115】Optionbuttonのチックしていないメッセージを出す方法 Yoshida 07/12/15(土) 21:08 質問
【53116】Re:Optionbuttonのチックしていないメッセ... bykin 07/12/16(日) 0:04 回答
【53121】Re:Optionbuttonのチックしていないメッセ... Yoshida 07/12/16(日) 11:08 質問
【53129】Re:Optionbuttonのチックしていないメッセ... りん 07/12/16(日) 15:58 発言
【53130】Re:Optionbuttonのチックしていないメッセ... bykin 07/12/16(日) 16:41 回答
【53151】Re:Optionbuttonのチックしていないメッセ... Yoshida 07/12/17(月) 19:04 お礼
【53167】Re:Optionbuttonのチックしていないメッセ... りん 07/12/18(火) 8:07 発言
【53187】Re:Optionbuttonのチックしていないメッセ... Yoshida 07/12/19(水) 7:18 お礼
【53117】Re:Optionbuttonのチックしていないメッセ... Hirofumi 07/12/16(日) 1:57 発言

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