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:表示順(追加)
2:全国地方公共団体コード
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