|
お世話になります。
マクロを勉強中の初心者です。
アンケートの集計フォームをつくっています。
アンケートの設問がQ1~Q17まであり、各設問に答えがA1~A10またはA1~A20ほどあります。
240個のオプションボタンがあり、チェックがついたら、そのオプションボタンに対応したセルの値を、別のシートのセルに投入していく(積上げていく)作業を繰り返し行いたいです。
色々なサイトを参考にし以下のようにコードを書いてみたのですが、プロシージャが大きすぎるエラーがでます。
どうすればシンプルなコードになるでしょうか。for next構文など、調べているのですが、なかなかうまくいかず、シンプルにしたコードを教えて頂きたいです。
以下 コードです。
Private Sub CommandButton1_Click()
Dim a As Integer
a = Worksheets("シートA").Range("投入範囲").Rows.Count
Worksheets("シートA").Range("投入範囲").Rows(a).Insert Shift:=xlDown
Worksheets("シートA").Range("投入範囲").Cells(a, 1).Value = TextBox1
If Frame1.OptionButton1.Value = True Then
Worksheets("シートA").Range("投入範囲").Cells(a, 2).Value = Worksheets("アンケート項目").Cells(3, 2)
ElseIf Frame1.OptionButton2.Value = True Then
Worksheets("シートA").Range("投入範囲").Cells(a, 2).Value = Worksheets("アンケート項目").Cells(4, 2)
…これが続いて
ElseIf Frame1.OptionButton10.Value = True Then
Worksheets("シートA").Range("投入範囲").Cells(a, 2).Value = Worksheets("アンケート項目").Cells(12, 2)
Else
End If
…設問がQ1からQ2に変わります
If Frame2.OptionButton11.Value = True Then
Worksheets("シートA").Range("投入範囲").Cells(a, 3).Value = Worksheets("アンケート項目").Cells(3, 3)
ElseIf Frame2.OptionButton12.Value = True Then
Worksheets("シートA").Range("投入範囲").Cells(a, 3).Value = Worksheets("アンケート項目").Cells(4, 3)
…と続き
ElseIf Frame17.OptionButton240.Value = True Then
Worksheets("シートA").Range("投入範囲").Cells(a, 18).Value = Worksheets("アンケート項目").Cells(22, 18)
End Sub
までで終わります。
どうすればシンプルにコード数を減らせるでしょうか。
ご教示頂ければ幸いです。
|
|