チェックボックス、ラジオ、ドロップダウンの値を VBA フォームから Excel スプレッドシートに挿入することに関して、多面的な質問があります。現在、コードでいくつかのケース シナリオに対応しようとしています。
挿入したい項目の最初のセットは、次の名前/値を持つチェックボックスです。
Name Value
========== =====
chk_week1 1
chk_week2 2
chk_week3 3
chk_week4 4
chk_week5 5
chk_week6 6
chk_week7 7
chk_week8 8
chk_week9 9
chk_week10 10
chk_week11 11
chk_week12 12
chk_week13 13
chk_week14 14
chk_week15 15
ユーザーが複数のチェックボックスを選択した場合、フォームに挿入する必要があります。1,2,4,5
たとえば、ユーザーが を選択した場合chk_week1, chk_week2, chk_week4 and chk_week5
です。
挿入する項目の 2 番目のセットは、フレーム内に次の名前/値を持つラジオ グループからの単一の選択ですfr_Priority
。
Name Value
========== =====
priority_y Yes
priority_n No
したがって、ユーザーが選択すると、Excel スプレッドシートpriority_y
にYes
挿入されます。
挿入したい項目の 3 番目のセットは、3 つのドロップダウンからのものです。これはかなり簡単ですが、ユーザーは 3 つのドロップダウンすべてで選択を行う必要があります。好みに興味がない場合は、 を選択します'No Preference'
。ユーザーがこの決定を下した場合、セルには何も挿入されません。次の名前/値が存在します。
Name
==========
cbo_fac1
cbo_fac2
cbo_fac3
たとえば、ユーザーが cbo_fac1 、 cbo_fac2 、 cbo_fac3 で選択した場合、挿入される111,222,No Preference
だけです。が選択されている場合は、挿入されるだけです。111,222
111,No Preference,No Preference
111
これは私が今使っているコードです:
Private Sub btnSubmit_Click()
Dim ws As Worksheet
Dim rng1 As Range
Set ws = Worksheets("main")
' Copy the data to the database
' Get last empty cell in column A
Set rng1 = ws.Cells(Rows.Count, "a").End(xlUp)
deptCodeSplit = Split(cbo_deptCode.Value, " ")
rng1.Offset(1, 0) = deptCodeSplit(0)
rng1.Offset(1, 1) = cbo_moduleCode.Value
rng1.Offset(1, 2) = cbo_moduleName.Value
rng1.Offset(1, 3) = txt_studentNo.Value
rng1.Offset(1, 4) = cbo_day.Value
rng1.Offset(1, 5) = cbo_period.Value
' rng1.Offset(1, 6) = weeks
rng1.Offset(1, 7) = cbo_weeks.Value
rng1.Offset(1, 8) = cbo_semester.Value
rng1.Offset(1, 9) = cbo_rounds.Value
rng1.Offset(1, 10) = cbo_priority.Value
' rng1.Offset(1, 11) = lectureStyle
rng1.Offset(1, 12) = txt_noRooms.Value
rng1.Offset(1, 13) = cbo_park.Value
' rng1.Offset(1, 14) = fac
' rng1.Offset(1, 15) = pref
rng1.Offset(1, 16) = txt_specialReq.Value
End Sub
よろしくお願いします!