|
その場合はユーザーフォームを表示する以前に、ListBoxの列数を
3 にしておくことと、列幅を調整するためのコードも追加します。
そしてListBoxのListプロパティに、2次元配列変数の値を渡します。
Private Sub CommandButton1_Click()
Dim St As String
Dim MyR As Range
Dim MyV As Variant
St = TextBox1.Text
If St = "" Then Exit Sub
Application.ScreenUpdating = False
With Worksheets("Sheet1")
.Range("IT:IV").ClearContents
Set MyR = .Range("A2", .Range("A65536").End(xlUp))
.Range("A1").AutoFilter 1, "=" & St
On Error GoTo ELine
Intersect(MyR.SpecialCells(12).EntireRow, _
.Range("A:B, D:D")).Copy .Range("IT1")
MyV = .Range("IT1").CurrentRegion.Value
ListBox1.Clear
ListBox1.List = MyV
ELine:
.AutoFilterMode = False
.Range("IT:IV").ClearContents
End With
Application.ScreenUpdating = True
If Err.Number <> 0 Then
MsgBox "フィルターで抽出した値はありません", 48
End If
Set MyR = Nothing
End Sub
Private Sub UserForm_Initialize()
With Me.ListBox1
.ColumnCount = 3
.ColumnWidths = 30
End With
End Sub
|
|