|
トムコ さん、こんばんわ。
>上記のマクロに、○を記入するマクロを組み込めばよいのでしょうか?
If OpB1.Value = True Then
ST = 1: ReT = 4
ElseIf OpB2.Value = True Then
ST = 1: ReT = 7
ElseIf OpB3.Value = True Then
ST = 1: ReT = 10
・
・
・
○を記入するマクロが「記録」と考えて、最初の分岐を組み込んで有効だったら記録をCallします。
また、オプションボタンのオブジェクト名がOpB*で、列番号が3つおきのようなので、オブジェクト名から列番号を計算しています。
Private Sub CommandButton2_Click()
Dim obj As Object
Dim PP(0 To 5) As String
'
For Each obj In Me.Controls
Select Case UCase(TypeName(obj))
Case "MULTIPAGE"
NN% = obj.Value
Case "OPTIONBUTTON"
'Trueの時は配列に確保
If obj.Value = True Then
PP(obj.Parent.Index) = obj.Name
End If
End Select
Next
'結果表示(チェックされたものが無ければ空白が返ります)
If PP(NN%) = "" Then
MsgBox "チェックを入れてからクリックしてね", vbExclamation
Else
'列番号計算
Ret = Val(Replace(UCase(PP(NN%)), "OPB", "")) * 3 + 1
St = 1 'これは分岐しなくていいのかな?
If Ret > 1 Then
MsgBox Ret, vbInformation, PP(NN%) 'Retの計算結果
'
記録 '記録をよぶならここ
Else
MsgBox PP(NN%), vbExclamation, "オブジェクト名確認"
End If
End If
Erase PP
End Sub
こんな感じです。
|
|