[[20041203103334]] 『オプションボタンをプログラムから参照する方法』(サム) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オプションボタンをプログラムから参照する方法』(サム)

いつも参考にさせていただいております。
シート上にオプションボタンを複数配置してあります。

(例)

○ABC ○XYZ

○ABC ○XYZ

○ABC ○XYZ

   ・

   ・

   ・

のようになっているのですが、同じ組み合わせのオプションボタンの値をプログラム上でどちらが選択されているかをLoopで調べるにはどうしたらよいのですか?
今は分からずLoopできずに、1つ1つ力技で見ています。

Excel97です


 判定の条件がよくわからないのですけど?
 あと、何のオプションボタンですか? 
 現在のコードを提示できますか? 
  (INA)

『オプションボタンをプログラムから参照する方法』(サム)

下記のように

 OptionButton1.Value = True
 OptionButton2.Value = True
 OptionButton3.Value = True
    ・
    ・
    ・
 OptionButton20.Value = True

と1つ1つ値をセットしていますが、これをLoopで回したいのです。
書き方が不十分でスイマセンでした。


 繰り返します。
 >何のオプションボタンですか?

 コントロールツールボックスであれば・・・

 Sub Sample()
 Dim i As Long

 For i = 1 To 3
    If ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = True Then
        MsgBox "OptionButton" & i & "  は True"
    Else
        MsgBox "OptionButton" & i & "  は False"
    End If
 Next i

 End Sub

  (INA) 

 スイマセン・・・コントロールツールボックスです。
 そのオプションボタンを「op?j」という規則で命名しています(?は1〜20)。
 で、下記のように下のですが、
 ActiveSheet.OLEObjects("op" & (i - 4) & "j").Object.Value = False

 「WorksheetクラスのOLEObject プロパティを取得できません。」

 となってしまいます。
 素人で申し訳ないですが、お助けください。

 (サム)


 >「op?j」という規則で命名

 >ActiveSheet.OLEObjects("op" & (i - 4) & "j").Object.Value = False
                         ~~~    ~~~~~~~   ~~
              ↑       ↑      ↑        
                全角半角が違う      ?     ?

 for i = 1 to 20 
     ActiveSheet.OLEObjects("op" & i).Object.Value = False
 next i                       ~~~ 
                             ↑
                               この場合、数字は半角
   (INA)

 適当に補足…全角にしたい時
     ActiveSheet.OLEObjects("op" & StrConv(CStr(i), vbWide)).Object.Value = False
(ご近所PG)


 私の書き方がいけなかったです。
 >
 > そのオプションボタンを「op?j」という規則で命名しています(?は1〜20)。
 >
 と書きましたが[op?」は半角です「op?」です。
 それでも
 「WorksheetクラスのOLEObject プロパティを取得できません。」
 のエラーを解消できません。

 (サム)

 LinkedCellプロパティでシート上にオプションボタンの選択状況を
表示させておいて、それをチェックする、という方法はいかがですか?
「オブジェクト名は関係なくなる」
「セルへの値設定で値変更できる」
「セルのチェックで値チェックできる」
最初の設定は面倒ですが、セルでループさせるほうがコーディング楽でしょ?
(みやほりん)その場しのぎすぎますかね。

 >  LinkedCellプロパティでシート上にオプションボタンの選択状況を
 > 表示させておいて、それをチェックする、という方法はいかがですか?
 >
 最初はLinkedCellで解決できたのですが、どうしてもプログラム上から
 操作できないと都合が悪いことが出てきてしまったものですから・・・・。

 みなさんの貴重な意見、非常に勉強になります。ありがとうございます。

 (サム)

 最初に提示したコードを新規ブックで試してみて下さい。
 できるはずですから。
  (INA)


 確かにできました。ありがとうございます。

 (サム)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.