プロが教えるわが家の防犯対策術!

VBA初心者です。
よろしくお願いします。


下記の様にユーザーフォーム上にフレームを設定し、そこにシートの内容を読み込んでチェックボックスを出現させるプログラムを書きました。
このチェックボックスを横並びに出現させる方法が知りたいのですが、探しても中々見つかりません。
どなたか教えていただけないでしょうか。
よろしくお願いします。


Dim chkbx() As MSForms.CheckBox
Dim chkcnt As Variant
Dim idx As Integer

chkcnt = Sheets(〇〇).Cells(Rows.Count, 1).End(xlUp).Row

If TypeName(chkcnt) <> "Boolean" Then
If chkcnt > 0 Then
ReDim chkbx(1 To chkcnt)
With Controls.Add("Forms.Frame.1")
.Top = 235
.Left = 20
.Height = 100
.Width = 270

For idx = 1 To chkcnt
Set chkbx(idx) = .Controls.Add("Forms.CheckBox.1", "Frame1")
With chkbx(idx)
.Top = (idx - 1) * 25 + 10
.Left = 10
.Height = 16
.Font.Size = 10
.Caption = Sheets(〇〇).Cells(idx, 1)
.AutoSize = True
End With
Next idx
End With
End If
End If

A 回答 (1件)

チェックボックスの縦横の位置を、


> .Top = (idx - 1) * 25 + 10
> .Left = 10
で指定してるんですから、ここを変更するだけでは。
例えば、

.Top = 10
.Left = (idx - 1) * 100 + 10

とか。

横並びすると、キャプションの文字が長ければ重なっちゃうし、文字数によって間隔変えようとかしたら、面倒です。
    • good
    • 0
この回答へのお礼

出来ました!!ありがとうございます!!
このプログラムは人から頂いたものをアレンジしたものなのですが、意味を理解していない部分もあり困っていました。
おかげさまで、疑問の解決だけでなくプログラムの意味も理解できました。

キャプションの文字は短めで、それぞれに大きな差もないため、うまく調節していこうと思います。

本当に助かりました。
ありがとございました。

お礼日時:2016/12/20 15:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!