|
>INAさんはOLEObjectsというのを使っておられましたが、
>Optionbutton & i.Valueではなぜエラーになるのですか?
>Optionbutton1.Valueのように番号を指定するとエラーはでないのに。
visual Basic ではコントロール配列というものがあります。
オプションボタンなどのコントロールを配列のように扱えるものです。
Optionbutton(1)
Optionbutton(2)
などと表現して便利なものなのですが、VBAでは使用できません。
シート上のコントロールツールボックスのコントロールは
OLEObjectsというオブジェクトに属する扱いになっております。
& で結合できるのは文字列ですので、
オブジェクト等の基本構文は結合できないのです。
そのため "" で囲まれた文字列の状態に置いて、 & i が使えます。
Optionbutton1 で1つのオブジェクトになっているので、
Optionbutton & 1 では動作しないのです。
これが可能だと
O & p & t & ion & but & ton1 & . & Value のような
むちゃくちゃな記述が出来てしまいます。
まとまりのない説明ですが、OLEObjectsを使うと覚えておいて下さい。
なおユーザーフォーム上で、このような
「コントロール配列もどき」を使うときは、
For C = 1 To 3
If Me.Controls("CheckBox" & C).Value = True Then
cnt = cnt + 1
End If
Next C
のように Controls を使うと出来ます。
|
|