|
トムコ さん、おはようございます。
>If OpB1.Value = True Then 'オプションボタン1にチェックがあるとき
> ST = 1: ReT = 4 ’シート1、列Dを選択
>ElseIf OpB2.Value = True Then
> ST = 1: ReT = 7
>ElseIf OpB3.Value = True Then
> ST = 1: ReT = 10
>ElseIf OpB4.Value = True Then
> ST = 1: ReT = 13
>ElseIf OpB5.Value = True Then
> ST = 1: ReT = 16
>ElseIf OpB6.Value = True Then
> ST = 1: ReT = 19
>ElseIf OpB7.Value = True Then
> ST = 1: ReT = 22
>ElseIf OpB8.Value = True Then
> ST = 1: ReT = 25
>ElseIf OpB9.Value = True Then
> ST = 1: ReT = 28
> ・
> ・
> ・
>End If
> 記録 ’
>End Sub
↑この分岐方法だと、ページ1でチェックが入っているものがあるとそれ以外のページでチェックが入っても無効になります(OpのNoの若いものが常に有効)。
そのフォームにCommandButton2を置いて以下のマクロを記述し、適当にチェックをつけた後にクリックしてみてください。
Private Sub CommandButton2_Click()
Dim obj As Object
For Each obj In Me.Controls
If TypeName(obj) = "OptionButton" Then
MsgBox obj.Value & vbCrLf & obj.Parent.Name, vbInformation, obj.Name
End If
Next
End Sub
ページ1〜5まであるとして、
・5つとも選ぶ(最大5つ○が入る)
・現在表示されているページのものだけ有効(○は一つ)
どちらでしょうか?
5つとも選ぶ場合は、上記のようにループでチェックの入ったものを取得し○、1つだけなら、Parent.Nameでページ位置を判定してそこに○・・・という漢字でしょうか。
|
|