5

私はVBAを初めて使用し、わずか3日です...しかし、VBAは非常に便利で使いやすいと感じましたが、今は問題に直面しています。異なるチェックボックスを使用してユーザーフォームを作成する必要がありますが、シートの列の1つで使用されている情報に基づいて自動的に追加する必要があります。For .. Each .. Nextを使用できると思いますが、チェックボックスに入力する方法がわかりません。これは私が現在持っている唯一の解決策ですが、チェックボックスを変えることはできません。1つだけです。

For Each rCell In Range("B1:B" & LastRow)
    If rCell.Value <> "" Then
        UserForm1.Controls.Add ("Forms.CheckBox.1")
    End If
Next

チェックボックスが追加されたら、チェックボックスのプロパティを入力する必要があります。そうすれば、その後の値で作業できます。

助けていただければ幸いです、ありがとう!

4

3 に答える 3

9

以前に回答を得たと思いますが、これは私の Google 検索で出てきたので、別の回答を投稿しようと思いました。次のコードをユーザー フォームに配置します。

Option Explicit

Private Sub UserForm_Initialize()

Dim curColumn   As Long
Dim LastRow     As Long
Dim i           As Long
Dim chkBox      As MSForms.CheckBox

curColumn = 1 'Set your column index here
LastRow = Worksheets("Sheet1").Cells(Rows.Count, curColumn).End(xlUp).Row

For i = 1 To LastRow
    Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i)
    chkBox.Caption = Worksheets("Sheet1").Cells(i, curColumn).Value
    chkBox.Left = 5
    chkBox.Top = 5 + ((i - 1) * 20)
Next i

End Sub

特定のニーズに合わせてコードを変更する必要がありますが、それで作業を開始できます。

于 2014-12-22T19:04:28.380 に答える
0

必要なプリンシパルについて説明しているので、最初にこの以前の回答を見てください。

コントロールをフレームに追加する

于 2013-03-20T17:46:51.587 に答える