|
▼まっき さん:
こんにちは。
>教えていただきたいのですが、
>
>ユーザフォーム2にチェックボタンを20個つくり、それぞれに「01〜20」までの
>値を代入して、それにチェックを入れ、コマンドボタンで入力すると
>ユーザーフォーム1のテキストボックス1に、チェックを入れた値のものだけが
>表示されるというのをやりたのですが、どうすればよいのでしょうか?
このユーザーフォーム1とユーザーフォーム2の関係
(ユーザーフォーム1から、ユーザーフォーム2を呼び出しているとか、
ふたつともモードレスで表示しているとか)も記述してください。
>
>色々やってみたのですが、うまくいきません。
できたら、こんなコードにしたけど駄目だった例も記述してください。
まっき さんが記述したことも全て情報になりますから・・・。
ユーザフォーム2(Userform2)のモジュールに
'===================================
Private Sub CommandButton1_Click()
Dim chkstr() As String
Dim cnt As Long
cnt = 0
Dim idx As Long
For idx = 1 To 20
If Controls("checkbox" & Format(idx, "00")).Value Then
'チェックボックスのコントロール名は
' checkbox01とかcheckbox02・・・・checkbox20に設定されていると
' とします
ReDim Preserve chkstr(1 To cnt + 1)
chkstr(cnt + 1) = Format(idx, "00")
cnt = cnt + 1
End If
Next
If cnt > 0 Then
UserForm1.TextBox1.Text = Join(chkstr(), ",")
'ユーザフォーム1は、オブジェクト名がUserform1だとします
End If
Erase chkstr()
End Sub
試してみてください。
|
|