ステートメント制御文の使用例11
使用例11
リストボックスに複数列の全データを表示する (3種類)
AddItem メソッドを使う方法
-----------------------------
Private Sub UserForm_Initialize()
'1行目タイトル
ListBox1.AddItem Cells(1, 1) & " " & _
Cells(1, 2) & " " & _
Cells(1, 3)
'3列全データ表示
For i = 2 To 11
ListBox1.AddItem Cells(i, 1) & " " & _
Cells(i, 2) & " " & _
Cells(i, 3)
Next i
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
RowSource プロパティを使う方法
---------------------------------
Private Sub UserForm_Initialize()
Dim Dt As String 'シートデータ範囲
'リストボックスを3列に分割
ListBox1.ColumnWidths = "30;30;30"
ListBox1.ColumnCount = 3
'1行目タイトル
ListBox1.ColumnHeads = True
'3列全データ表示
Dt = "A2:C11"
ListBox1.RowSource = Dt
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
ADO ドライバ と SQL 文 を使う方法
------------------------------------
Private Sub UserForm_Initialize()
'ADO ドライバーを使用して、エクセルのデータ
'ファイルをデータベースとし、SQL文 を使って
'リストボックスに3列全データを読み込む方法
'(演習30〜36 を参照)
'VBE-ツール-参照設定において 次をチェック
'Microsoft ActiveX Data Objects 2.1 Library
Dim Dbs As New ADODB.Connection 'ADOコネクション
Dim Rcs As New ADODB.Recordset 'ADOレコードセット
Dim mydbC As String 'エクセルコネクション
Dim mydbF As String 'エクセルデータファイル
Dim myQry As String 'クエリ文
Dim Rcd As Integer 'エクセルレコード表示行
'エクセルデータファイル指定
'(事前に作成して、同一フォルダに保存しておく)
mydbF = "test16fa.xls"
'エクセルデータベース接続設定
mydbC = _
"Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & ThisWorkbook.Path & "\" & mydbF & ";"
'クエリ文
myQry = "Select * From [Sheet1$];" 'シート読み込み
'エクセルデータベース接続
Dbs.Open "Provider=MSDASQL;" & mydbC
'レコードセットを開く
Rcs.Open Source:=myQry, ActiveConnection:=Dbs
'エクセルカレントシートに読み込み
With Rcs
'フィールド名(タイトル行)
For i = 1 To .Fields.Count
Cells(1, i).Value = .Fields(i - 1).Name
Next
'レコード(データ)表示
Range("A2").CopyFromRecordset Rcs
'リストボックスに読み込み
'リストボックスを3列に分割
ListBox1.ColumnWidths = "30;30;30"
ListBox1.ColumnCount = 3
'1行目タイトル
ListBox1.ColumnHeads = True
'3列全データ表示
Dt = "A2:C11"
ListBox1.RowSource = Dt
.Close
End With
Dbs.Close
Set Rcs = Nothing
Set Dbs = Nothing
End Sub
Private Sub CommandButton1_Click()
Range("A1:C11").Clear
Unload Me
End Sub
back top