• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActiveWorksheet上のオプションボタンを操作したい。)

Excel VBAでオプションボタン(Button)を操作する方法

このQ&Aのポイント
  • Excel VBAを使用して、ブックOriginalBookのデータに基づき、ブックTargetBookのワークシート上に配置されたオプションボタン(Button1, Button2)を操作したいです。
  • コーディングしたVBAでエラーが出ており、「コンパイルエラー:メソッドまたはデータメンバが見つかりません」というメッセージが表示されています。
  • 参照の方法が間違っている可能性があります。アドバイスがあれば助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

---------------------------------------------- Book[orgBook1.xls]のSheet[Sheet1]   A B C D 1 1 2    [CommandButton1] 3 4 ---------------------------------------------- Book[trgBook2.xls]のSheet[target]   A B C D 1 2   ◎OptionButton1  ←上のシートのA1の値によってオン、オフを切り替える 3   ○OptionButton2  ← 4 ---------------------------------------------- 質問は、 Book[orgBook1.xls]には[CommandButton1]があり、このボタンで Book[trgBook2.xls]のSheet[target]のOptionButton1、OptionButton2のオン、オフを切り替える。 と解釈して以下を書いています。 なお、各コントロールは、コントロールツールボックスから貼り付けたコントロールです。 コントロール名はデフォルトのまま書いています。 例として、OptionButtonのオン、オフをorgBook1.xlsのA1セルの値で決めています。 ●Book[orgBook1.xls]のSheet[Sheet1]のコードウインドウに   Private Sub CommandButton1_Click()     Call trgSheetSet   End Sub ●Book[orgBook1.xls]の標準モジュールに   Sub trgSheetSet()     Dim setVal As Boolean       '// セルA1で値を変えているだけ       setVal = (Range("A1") <> 0)     With Workbooks("trgBook2.xls").Worksheets("target")       If setVal Then         .OptionButton1.Value = True       Else         .OptionButton2.Value = True       End If     End With   End Sub

sarutobi
質問者

お礼

皆様にお礼申し上げます。 説明が足りなかったようで、ご迷惑おかけしました。 つたない質問にもかかわらず、いろいろ回答をくださいまして、ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

if ( value=1 ) then のところは、 Valueはプロパティですから、前にオブジェクトと点(.) が要ります。多分Rangeオブジェクト(Cells()も含めて)でしょう。それが要ります。または With Range("a1") if .Value=1 Then ・・・ End With とかも出きるでしょう。 またオプションボタンのプロパティのLinkedCellをセルC1とかに設定すると、C1を1(0以外)にすると、目玉黒、0にすると目玉白に(コードを書かずとも)なります。

すると、全ての回答が全文表示されます。
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

提示のコードは、コードウィンドウからコピーしたものではないようですが、 もし、書き違いでなければ、下の論理式でコンパイルエラーになっている ことが考えられます。 何に対するValueなのかを記述する必要があるのではないでしょうか? > if ( value=1 ) then

すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

Excelのバージョンも書きましょう。 全容が見えず、処理が掴めません。 オプションボタンも2種類あるので、、、 ActiveXオブジェクトなら、下記でメッセージが出ます。 ご参考まで。 Sub Test() Dim ts As Worksheet, ob As OLEObject Set ts = ActiveSheet For Each ob In ts.OLEObjects  MsgBox ob.Name Next ob End Sub

すると、全ての回答が全文表示されます。

関連するQ&A