Excel VBA質問箱 IV

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

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


26587 / 76738 ←次へ | 前へ→

【55482】Re::こんな方法ですか
回答  Hirofumi  - 08/5/6(火) 16:47 -

引用なし
パスワード
   FuserFormにFrame1〜10を配し、各FrameのCaptionを「問1」、「問2」・・「問10」とします
また、Frameのオブジェクト名は、Frame1〜10とします
各Frameの中に、「Yes」、「No」のCaptionを持つ2つのOptionButtonを配置します
UserFormの適当な位置にLabel1、Label2を配置します

Option Explicit

Private Sub OptionButton1_Click()

  GetAnswer OptionButton1
  
End Sub

Private Sub OptionButton2_Click()

  GetAnswer OptionButton2
  
End Sub

 ・
 ・
Private Sub OptionButton19_Click()

  GetAnswer OptionButton19
  
End Sub

Private Sub OptionButton20_Click()

  GetAnswer OptionButton20
  
End Sub

Private Sub GetAnswer(cntOption As MSForms.OptionButton)

  Const clngGroup As Long = 5
  
  Dim i As Long
  Dim strResult As String
  Dim strName As String
  Dim lngNumb As Long
  
  With cntOption
    .Parent.Tag = .Caption
    strName = .Parent.Name
  End With
  
  'フレームの番号を取得してグループ番号に変換(5問づつ)
  lngNumb = (CLng(Mid(strName, 6)) - 1) \ clngGroup
  
  For i = 0 To Controls.Count - 1
    If TypeName(Controls(i)) = "Frame" Then
      '変更されたGroupを集計
      If (CLng(Mid(Controls(i).Name, 6)) - 1) \ clngGroup = lngNumb Then
        If StrComp(Controls(i).Tag, "Yes", vbTextCompare) = 0 Then
          If strResult <> "" Then
            strResult = strResult & ","
          End If
          strResult = strResult & Controls(i).Caption
        End If
      End If
    End If
  Next i
  
  'GroupのLabelに代入
  Controls("Label" & (lngNumb + 1)).Caption = strResult
  
End Sub

2 hits

【55444】例示がおかしかったです。すみません。 みけ 08/5/4(日) 16:42 回答
【55446】質問、回答の仕方にきを気をつけて下さい Hirofumi 08/5/4(日) 17:02 発言
【55454】:こんな方法ですか Hirofumi 08/5/4(日) 21:50 回答
【55478】Re::こんな方法ですか みけ 08/5/6(火) 14:57 発言
【55482】Re::こんな方法ですか Hirofumi 08/5/6(火) 16:47 回答
【55495】Re::こんな方法ですか みけ 08/5/7(水) 22:05 お礼

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