※ ChatGPTを利用し、要約された質問です(原文:Excel VBA リストボックスについて)
Excel VBA リストボックスのエラー381の解決方法
このQ&Aのポイント
Excel VBAの勉強中の初心者がリストボックスを使うコードでエラー381が発生しました。エラーメッセージとしては「Listプロパティを設定できません。プロパティの配列のインデックスが無効です。」と表示されます。
このエラーは、コードの特定の行で配列のインデックスが無効な値になっていることが原因です。具体的には、リストボックスの特定の列に値を設定しようとしている行でエラーが発生しています。
解決するためには、エラーが発生している行のコードを確認し、配列のインデックスを正しい値に修正する必要があります。エラー行のコードを以下のように修正することで、エラーを解消できます。
.List(ListCount - 1, 2) = Cells(i, 3).Value
現在エクセルのVBAを勉強中の
超初心者なのですが、
リストボックスを使うコードでエラーが出て
どう直したらいいかわかりません。
下記コードをどのようになおしたらいいでしょうか?
回答、よろしくお願いいたします。
エラー内容は、実行時エラー381
Listプロパティを設定できません。プロパティの配列のインデックスが無効です。
Private Sub UserForm_Initialize()
'リストボックスの設定
With ListBox1
.Font.Size = 10
.ColumnCount = 7
.ColumnWidths = "50;100;80;80;100;30;70"
.TextAlign = fmTextAlignLeft
.Font.Name = "MSゴシック"
End With
Dim i As Integer
Dim LastRow As Integer
LastRow = Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
With ListBox1
.AddItem Cells(i, 1).Value
.List(ListCount - 1, 1) = Cells(i, 2).Value
.List(ListCount - 1, 2) = Cells(i, 3).Value ←ここでエラー
.List(ListCount - 1, 3) = Cells(i, 4).Value
.List(ListCount - 1, 4) = Cells(i, 5).Value
.List(ListCount - 1, 5) = Cells(i, 6).Value
.List(ListCount - 1, 6) = Cells(i, 7).Value
End With
Next
End Sub