

ユーザーフォームに3つのオプションボタンを配置し、CommandButton1を押すと、オプションボタンの選択により、セルa1に”aaa","bbb","ccc"のいずれかを書き込むようにしました。
このようにOptionButton1~OptionButton3と、それぞれ記述するのではなく、オプションボタンを配列にして一つにまとめる方法はありますか。よろしくお願いします。
Private Sub CommandButton1_Click()
If OptionButton1 = True Then
Range("a1") = "aaa"
End If
If OptionButton2 = True Then
Range("a1") = "bbb"
End If
If OptionButton3 = True Then
Range("a1") = "ccc"
End If
End Sub
No.2ベストアンサー
- 回答日時:
こんばんは!
Private Sub CommandButton1_Click()
Dim i As Long, myAry As Variant
myAry = Array("aaa", "bbb", "ccc")
For i = 1 To 3
If Controls("OptionButton" & i) = True Then
Range("A1") = myAry(i - 1)
Exit For
End If
Next i
End Sub
こんな感じでループができると思います。m(_ _)m
ありがとうございます。セルに入力する文字を配列にする方法があったのですね。また、OptionButtonの後ろに1から3の数値を「i」を使って代入する事が出来ました。

No.1
- 回答日時:
Controlsプロパティを使えば、配列のようにあつかえます。
以下のマクロは、
OptionButton1 がtrueの時1、
OptionButton2がtrueの時2、
OptionButton3がtrueの時3をA1に設定します。
-------------------------------------------
Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To 3
If Controls("OptionButton" & i).Value = True Then
Range("A1").Value = i
End If
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
人気Q&Aランキング
-
4
Excelで隣のセルと同じ内容に列...
-
5
Excelでの列幅設定
-
6
エクセルで二つの数字の小さい...
-
7
【VBA】A列の指定した値と同じ...
-
8
エクセル 同じ値を探して隣の...
-
9
エクセルの日付抽出
-
10
ある列のセルに特定の文字が入...
-
11
SUMIFとCOUNTIFを合わせたよう...
-
12
エクセルで極大値を拾うには
-
13
エクセルでの複数条件下での標...
-
14
エクセルの項目軸を左寄せにしたい
-
15
2つのエクセルのデータを同じよ...
-
16
PowerPointで表の1つの列だけ...
-
17
「ゴンチャ」について
-
18
VBAで文字列を数値に変換したい
-
19
エクセルの並び変えで、空白セ...
-
20
エクセルでオートフィルタのボ...
おすすめ情報
公式facebook
公式twitter