こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでフォームの無効化

エクセル2000です。
ワークシート上に配置した、フォームのDropDown (コンボボックス)を一定の条件下で無効にしようと思い、下記のTEST1のようにやってみました。

Sub TEST1()
ActiveSheet.Shapes.Range(Array("Drop Down 7", "Drop Down 8", "Drop Down 9")).Select
Selection.Enabled = False
End Sub

うまくいきました。そこで

Sub TEST2()
ActiveSheet.Shapes.Range(Array("Drop Down 7", "Drop Down 8", "Drop Down 9")).Enabled = False
End Sub

のように書き換えたところ実行時エラーがでました。
下記のようにばらせばうまくいきますが、どうしてTEST2ではダメなのかわかりません。
ご教示ください。

Sub TEST3()
With ActiveSheet
.DropDowns("Drop Down 7").Enabled = False
.DropDowns("Drop Down 8").Enabled = False
.DropDowns("Drop Down 9").Enabled = False
End With
End Sub

投稿日時 - 2006-02-04 00:35:03

QNo.1942213

困ってます

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

Range に Enabledプロパティが無いからだと思います。
3つで全部なら ActiveSheet.DropDowns.Enabled = False でもOKだと思います。

投稿日時 - 2006-02-04 00:53:08

補足

すみません。
お礼を書いた後気づいたのですが、 ActiveSheet.DropDowns.Enabled = False ですと、シート保護時にはエラーになります。
バラでやった場合は保護しててもOKなんです。
どうしてでしょうか?

投稿日時 - 2006-02-05 01:07:02

お礼

ありがとうございました。
今回は3つだけでなく他にもあり、そちらは有効にしておきたいので個別に記述しました。
でも、.DropDowns.Enabled = False も今度使わせていただきます。
ありがとうございました。

投稿日時 - 2006-02-05 00:46:55

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問