イベントプロシージャなどとあわせて用いることで、
ActiveXのオブジェクトを自動的に整列させたり、
表示文字を随時変更することができる。
この例では
ラジオボタン
を
四行
ずつ整列させるものとする。
<サンプル>
'******定数の宣言*****
Const a As Integer = 4 'ラジオボタンの行数
Const myLeft As Integer = 330 '並び始めの位置(左)
Const myTop As Integer = 25 '並び始めの位置(上)
Const myHei As Integer = 20 '高さ
Const myWid As Integer = 135 '幅
Const amariWid As Integer = 20 'オブジェクトとオブジェクトの横の間隔
Const amariTop As Integer = 2 'オブジェクトとオブジェクトの縦の間隔
'*****変数の宣言*****
Dim obj As OLEObject
'取得しているラジオボタンの・・・
Dim i As Long '番号
Dim b As Long '列数
Dim c As Long '行数
'*****ラジオボタンに表示する文字を配列myValに格納する*****
'この例では「値格納」シートのセルA1より行方向へ値が記されているとする
Sheets("値格納").Activate
myVal = Range("A1").CurrentRegion.Value
'*****処理開始*****
'この例では「メイン」シートにラジオボタンが配置されているとする
Sheets("メイン").Activate
i = 2
For Each obj In ActiveSheet.OLEObjects
b = Int((i / 2) / a) '列数
c = i - 2 - 4 * b
With obj
'ラジオボタンの・・・
'大きさ
.Height = myHei
.Width = myWid
'配置位置
.Left = myLeft + myWid * b + amariWid
.Top = myTop + myHei * c + amariTop
With .Object
.Caption = myVal(i, 1) '表示
.FontWeight = 400 'フォントの太さ
.FontSize = 11 'フォントサイズ
.AutoSize = False 'サイズの自動調整を行わない
End With
End With
i = i + 1
Next