ExcelVBAでリストボックス10列以上読み込み|【コピペで解決】

ExcelVBA

今回は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と記述して下さい。

これは読み込むけれども非表示(隠す)にするという設定です。
あとは適所、ご自身の環境に合わせて書き換えてみて下さい。

タイトルとURLをコピーしました