[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オプションボタンをプログラムから参照する方法』(サム)
いつも参考にさせていただいております。
シート上にオプションボタンを複数配置してあります。
(例)
○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.