- ベストアンサー
Excelマクロでチェックボックスを不定数表示する
- Excelマクロでチェックボックスを不定数表示し、結果をユーザーフォームに表示したいです。
- また、結果表示行のそれぞれにチェックボックスを設け、一斉印刷と選択印刷の両方を選べるようにしたいです。
- この処理はユーザーフォームを使用して実現することが可能でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>(1)フィルターをかけた情報と違うものが表示されることがある。 フィルターで抽出された値をリストボックスに設定するには一旦、抽出したデーターを 他のシートに移して、それを基に設定する必要があります。 例ではSheets("作業場").を設けて行っています。 Private Sub UserForm_Initialize() Dim データ範囲 With Worksheets("住所録") Sheets("作業場").Cells.ClearContents .Range("A2", .Cells(Rows.Count, 5).End(xlUp)).Copy Sheets("作業場").Range("A1") データ範囲 = Sheets("作業場").Range("A1").CurrentRegion.Value End With With ListBox1 .ColumnCount = 5 .ColumnWidths = "20;50;50;50;50" .List = データ範囲 .MultiSelect = fmMultiSelectMulti .ListStyle = fmListStyleOption End With End Sub >(2)コラムヘッドが表示されない。 見出しを表示するにはリストデーターの設定は.RowSourceを使います。 Private Sub UserForm_Initialize() Dim データ範囲 As String Dim LastRow As Long With Worksheets("住所録") LastRow = .Cells(Rows.Count, 5).End(xlUp).Row データ範囲 = .Range("A2:E" & LastRow).Address(External:=True) End With With ListBox1 .ColumnCount = 5 .ColumnWidths = "20;50;50;50;50" .RowSource = データ範囲 .MultiSelect = fmMultiSelectMulti .ColumnHeads = True .ListStyle = fmListStyleOption End With End Sub こちらは、直接、フィルターのデーターを参照していますので フィルターで隠れているデーターも表示されますので 一旦、別のシートにデーターをコピーして参照してやる必要があります。
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
>のような処理はユーザーフォームで可能なのでしょうか? 可能です。 ユーザーフォーム上にListBoxを設けListBoxにフィルターをかけた値を表示します。 ListBoxは ListStyleプロパティ を fmListStyleOption MultiSelectプロパティ を fmMultiSelectMulti に設定すると1列目にチェックボックスが表示されます
補足
ご回答ありがとうございます。 途中まではうまく行ったのですが・・・、 ============================================================ Private Sub UserForm_Initialize() Dim データ範囲 With Worksheets("住所録") データ範囲 = .Range(.Cells(2, 1), .Cells(Rows.Count, 5).End(xlUp)).Value End With With ListBox1 .ColumnCount = 5 .ColumnWidths = "20;50;50;50;50" .List = データ範囲 .MultiSelect = fmMultiSelectMulti .ColumnHeads = True .ListStyle = fmListStyleOption End With End Sub ============================================================ 問題は、 (1)フィルターをかけた情報と違うものが表示されることがある。 (2)コラムヘッドが表示されない。 お分かりになるでしょうか?