リストボックスの値を、他のユーザーフォームから更新できない。
1 背景の説明
アンケートを内容が変っても楽に作れるVBAを作成しようと、ユーザーフォームを作成していました。
ユーザーフォーム1にリストボックスを持たせて、「項目作成」というボタンを押したらリストボックス更新する、というものを作ろうとしていました。
<フォームの図>
<更新するためのコード{項目を登録するボタン}>
Private Sub cmd_Register_Click() 'リストを作成 ReDim lst_QuestionItem(AnswerItemCount, 2) '項目の更新処理↓↓ UF_アンケート作成.lst_QuestionItem.List(0, 0) = txt_QestionNo_1.Value UF_アンケート作成.lst_QuestionItem.List(0, 1) = txt_QuestionItem_1.Value UF_アンケート作成.lst_QuestionItem.List(0, 2) = cmd_Required_1.Value
【結論】これではエラーとなります。
<エラーメッセージ>
2 解決策。まず空白を追加する。
<更新するためのコード{項目を登録するボタン}>に以下のコードを1行追加します。
’追加↓↓ UF_アンケート作成.lst_QuestionItem.AddItem "" UF_アンケート作成.lst_QuestionItem.List(0, 0) = txt_QestionNo_1.Value UF_アンケート作成.lst_QuestionItem.List(0, 1) = txt_QuestionItem_1.Value UF_アンケート作成.lst_QuestionItem.List(0, 2) = cmd_Required_1.Value
そうするとリストボックスの更新が可能になります。
<更新可能になったフォームの図>
3 感想
正直、なぜこれで解決できるのかが分かりません(;^ω^)。空白を入れることでリストが作成されるのか??
とりあえず、これで作成を進めそうなのでよしとします。
同じ悩みを抱える人の解決策になれば幸いです。