----------------------------------------------
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
if ( value=1 ) then のところは、
Valueはプロパティですから、前にオブジェクトと点(.)
が要ります。多分Rangeオブジェクト(Cells()も含めて)でしょう。それが要ります。または
With Range("a1")
if .Value=1 Then
・・・
End With
とかも出きるでしょう。
またオプションボタンのプロパティのLinkedCellをセルC1とかに設定すると、C1を1(0以外)にすると、目玉黒、0にすると目玉白に(コードを書かずとも)なります。
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
お礼
皆様にお礼申し上げます。 説明が足りなかったようで、ご迷惑おかけしました。 つたない質問にもかかわらず、いろいろ回答をくださいまして、ありがとうございました。