A2→北海道 A3→青森県 A4→岩手県 B2→54 B3→46 B4→33 本当はもっと下まで続いています。(都道府県分)
A2→北海道 A3→青森県 A4→岩手県 B2→54 B3→46 B4→33 本当はもっと下まで続いています。(都道府県分) これをユーザーフォームに画像のように自動で表示したいです。 宜しくお願い致します。
Visual Basic | プログラミング・46閲覧・500
ベストアンサー
Private Sub UserForm_Initialize() Call ラベルを自動的に配置する End Sub Private Sub ラベルを自動的に配置する() Const LEFT_起点1& = 10 Const LEFT_起点2& = 60 Const TOP_起点1& = 20 Const TOP_起点2& = 20 Const 縦ピッチ1& = 30 Const 縦ピッチ2& = 30 Const フォントサイズ& = 12 Const フォントタイプ$ = "MS PGothic" Dim ws As Worksheet: Set ws = Worksheets("Sheet1") Dim data: data = ws.Range("A2", Cells(Rows.Count, "B").End(xlUp)) Dim top1 As Long: top1 = TOP_起点1 Dim top2 As Long: top2 = TOP_起点2 Dim left1 As Long: left1 = LEFT_起点1 Dim left2 As Long: left2 = LEFT_起点2 Dim i As Long For i = LBound(data) To UBound(data) Dim lbl都道府県 As msforms.Label Set lbl都道府県 = Controls.Add("Forms.Label.1", "都道府県" & i, True) lbl都道府県.left = left1 lbl都道府県.top = top1 lbl都道府県.Caption = data(i, 1) lbl都道府県.Font = フォントタイプ lbl都道府県.Font.Size = フォントサイズ lbl都道府県.AutoSize = True lbl都道府県.Visible = True top1 = top1 + lbl都道府県.Height + 縦ピッチ1 Dim lbl値 As msforms.Label Set lbl値 = Controls.Add("Forms.Label.1", "値" & i, True) lbl値.left = left2 lbl値.top = top2 lbl値.Caption = data(i, 2) lbl値.Font = フォントタイプ lbl値.Font.Size = フォントサイズ lbl値.AutoSize = True lbl値.Visible = True top2 = top2 + lbl値.Height + 縦ピッチ2 Next End Sub
1人がナイス!しています