Windows 10 Pro_x64 + Excel2013_x86 VBA で Worksheet のデータ を ListBox に表示する
Windows 10 Pro_x64 + Excel2013_x86 VBA で Worksheet のデータ を ListBox に表示する
Worksheetのデータをフォームの起動時にListBoxにセットする
ループで1行づつデータを取得して、Cellのデーをセットする方法もあるが
対象の領域を Variant の2次元配列にセットしてループで処理する方が良いかなと
※桁数の多いデータを取り込んでListBoxに表示することは無いと思うけど
※DBに登録するときは、1行単位で ひらうかな?
・UserFormを1個追加する
・UserForm1の上にListBoxを1個追加する
・UserForm_Initialize で ListBox1 に初期データを追加する
対象データは以下の全国一括(KEN_ALL.CSV)より一部抜粋
データの並びは以下に準拠
1:表示順(追加)
4:郵便番号(7桁)
9:市区町村名
10:町域名
Option Explicit Private Sub UserForm_Initialize() ' Dim varAry As Variant Dim lngRow As Long ' ListBox1.Clear ' ListBox1.ColumnWidths = "30 pt; 30 pt;40 pt;70 pt;70 pt" ListBox1.ColumnCount = 5 ' ' データは A3:P8 にある ' With ThisWorkbook.Worksheets("ZIPCODE") lngRow = .Range("A" & Rows.count).End(xlUp).Row varAry = .Range(.Cells(3, 1), .Cells(lngRow, 10)) End With For lngRow = 1 To UBound(varAry) ListBox1.AddItem "" ListBox1.List(lngRow - 1, 0) = varAry(lngRow, 1) ListBox1.List(lngRow - 1, 1) = varAry(lngRow, 2) ListBox1.List(lngRow - 1, 2) = varAry(lngRow, 4) ListBox1.List(lngRow - 1, 3) = varAry(lngRow, 9) ListBox1.List(lngRow - 1, 4) = varAry(lngRow, 10) Next ' End Sub