今回はExcelVBAでリストボックスに10列以上値を読み込む方法を解説します。
簡単に自己紹介ですが私は会社員15年程経験しその中でExcelVBAを使い沢山の効率化を図ってきました。Excelの資格も取得していますので有益な情報になると思います。
今回の記事の対象者
- ExcelVBAでリストボックスに10列以上の値を読み込む方法を知りたい
今回の記事を見た事で得られる事
- ExcelVBAでリストボックスに10列以上の値を読み込む方法がわかる
では早速ですがコードから記載します。
Private Sub UserForm_Initialize()
Worksheets("04月全員分").Activate
Dim rng As Range
Dim migishita As Variant
Dim i As Long, j As Long
Dim data() As Variant
'一番右下の最終行取得
migishita = Worksheets("04月全員分").Range("M" & Rows.Count).End(xlUp).Row
'表示したいセル範囲の左上と右下を指定
Set rng = Worksheets("04月全員分").Range(Cells(2, 1), Cells(migishita, 13))
'4列目から11列目までは時間形式で表示したい場合
data = rng.Value
For i = LBound(data) To UBound(data)
For j = 4 To 11 ' D列からK列までの列番号は4から11まで
data(i, j) = Format(data(i, j), "hh:mm")
Next j
Next i
' リストボックスにデータをセット
ListBox1.ColumnCount = rng.Columns.Count
ListBox1.ColumnWidths = "30;90;110;50;50;60;50;50;70;70;70;50;100"
ListBox1.List = data
ListBox1.Font.Size = 16
End Sub
ここで補足があります。
もし3列目に「住所」が入っていてリストボックスを読み込んだ時に住所を表示させたくない場合にはListBox1.ColumnWidths = “30;90;110 の110の部分を0と記述して下さい。
これは読み込むけれども非表示(隠す)にするという設定です。
あとは適所、ご自身の環境に合わせて書き換えてみて下さい。

