• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelマクロでチェックボックスを不定数表示する)

Excelマクロでチェックボックスを不定数表示する

このQ&Aのポイント
  • Excelマクロでチェックボックスを不定数表示し、結果をユーザーフォームに表示したいです。
  • また、結果表示行のそれぞれにチェックボックスを設け、一斉印刷と選択印刷の両方を選べるようにしたいです。
  • この処理はユーザーフォームを使用して実現することが可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.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)
回答No.1

>のような処理はユーザーフォームで可能なのでしょうか? 可能です。 ユーザーフォーム上にListBoxを設けListBoxにフィルターをかけた値を表示します。 ListBoxは ListStyleプロパティ を fmListStyleOption MultiSelectプロパティ を fmMultiSelectMulti に設定すると1列目にチェックボックスが表示されます

bms0320
質問者

補足

ご回答ありがとうございます。 途中まではうまく行ったのですが・・・、 ============================================================ 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)コラムヘッドが表示されない。 お分かりになるでしょうか?

関連するQ&A