|
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
|
|