これは私が作っているよりも複雑ではないと思いますが、VBAの初心者であると私は数日間のグーグルグーグルで答えを見つけることができませんでした異なるコード。Excel VBA - 可変数のuserformチェックボックスから配列を作成
が- は、特定のセクションの開始を見つけるために、ファイル内の特定のテキストのための
- 検索を命名されているもののフォルダのパスでファイルを開き、すなわちA100
- 見つけた:
私はマクロを持っていますA110(ファイルに応じて長さが変わる)
- この範囲のセルを別の特定の範囲、つまりO1にコピーして貼り付けます。O10
- ユーザーフォームにチェックボックスを設定しますこの新しい可変長範囲内の各セルについて
これで、ユーザーは、どのチェックボックスをクリックする必要がありますか、これらのチェックボックスのキャプションは、後でマクロで呼び出すことができる配列として保存する必要があります。彼らは犬、猫、およびチェックボックスから鳥をクリックした場合
すなわち、出力があるので、チェックボックスの範囲と数の可変長の犬、猫、鳥
だろう、私は把握することはできませんそれぞれをループさせて正しい値を連結する方法。
私はおそらく、userformにも値を貼り付けるためのコピー貼り付けを切り捨てる方法があると思いますが、これは範囲の可変長を考慮してその部分を見つけ出す唯一の方法でした。
以下は、コピー貼り付け後にユーザーフォームを生成するコードです。
Private Sub UserForm_Initialize()
Dim curColumn As Long
Dim i As Long
Dim codeRow As Long
Dim chkBox As msforms.CheckBox
curColumn = 15
codeRow = Range("O20").End(xlUp).Row
For i = 1 To codeRow
Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i)
chkBox.Caption = Worksheets(1).Cells(i, curColumn).Value
chkBox.Left = 5
chkBox.Top = 5 + ((i - 1) * 20)
Next i
End Sub
ListBoxコントロールは、チェックボックスhttps://stackoverflow.com/questions/10944064/change-individual-listbox-item-font-inを持つことができます-excel – Slai
いつでも 'Me.Controls'コレクションを繰り返し処理し、コントロールの型名をチェックすることができます...しかし、間違いなく、リストボックスは以下のようなデザインタイムプロパティを持っています:' MultiSelect = 1 '、' ListStyle = 1'、そして実行時に 'RowSource'プロパティを' Range( "O1:O"&coderow)に設定してください。 –
ありがとう!完璧に働いた。以下に更新されたコードを掲載します。 –