質問させていただきます。
現在、エクセルにて
sheet1に帳簿内容入力画面
sheet2に入力画面の項目を反映した印刷用帳簿
というものを作成しています。
その中で、sheet1にチェックボックスを設置し、チェックONでsheet2任意の場所に
オートシェイプの楕円を表示(チェックOFFで楕円は消える)させたいのですが、
うまくいきません。
試しにsheet1上にチェックボックス・楕円を設置し、
-------------------------------------------
Sub test01()
With ActiveSheet
If .CheckBoxes(Application.Caller).Value = xlOn Then
.Shapes("楕円1").Visible = True
Else
.Shapes("楕円1").Visible = False
End If
End With
End Sub
-------------------------------------------
とイベント設定をしたところ、sheet1上ではチェックON/OFFで楕円の
表示/非表示ができました。
しかし、実際sheet1にチェックボックス、2に楕円と設置すると「オブジェクトが存在しません」と
エラーになってしまいます。
IF関数のような(シート名!セル名)的に楕円の場所を指定しなければいけないのかな?と
思い、色々試してみたのですが実現できませんでした。
勉強不足で恐縮なのですが、詳しい方アドバイスをいただきたいです。
With ActiveSheet
…
End With
の中で
.Shapes("楕円1").Visible = True
としている意味は、ActiveSheetの楕円1を表示せよということになるので、
ActiveSheetに楕円1がなければ、言われているようなエラーになります。
Worksheets("Sheet2").Shapes("楕円1").Visible = True
としましょう。
お礼
シート指定はこの様にするのですね! 早速ご指摘通りに修正したところ、問題なく動作しました! 勉強になりました!有難うございます!