プロが教えるわが家の防犯対策術!

質問させていただきます。

現在、エクセルにて
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関数のような(シート名!セル名)的に楕円の場所を指定しなければいけないのかな?と
思い、色々試してみたのですが実現できませんでした。

勉強不足で恐縮なのですが、詳しい方アドバイスをいただきたいです。

A 回答 (1件)

With ActiveSheet



End With

の中で
.Shapes("楕円1").Visible = True
としている意味は、ActiveSheetの楕円1を表示せよということになるので、
ActiveSheetに楕円1がなければ、言われているようなエラーになります。

Worksheets("Sheet2").Shapes("楕円1").Visible = True
としましょう。
    • good
    • 0
この回答へのお礼

シート指定はこの様にするのですね!

早速ご指摘通りに修正したところ、問題なく動作しました!
勉強になりました!有難うございます!

お礼日時:2011/08/02 23:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!