- 締切済み
実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません
エクセルVBAを使用して、あるシートAのコードに Worksheets("シートB").Visible = xlSheetVisible と記述して、既に非表示設定してある別のシートBを表示させたいと思っているのですが、表題のエラーが出て実行できません。 上記記述文のところでエラーとなります。 どなたか原因をご存知の方は、その原因と対処法をお教えください。 よろしくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wildcard
- ベストアンサー率54% (54/100)
excel97やexcel2000を使用していますが、 Worksheets("シートB").Visible = xlSheetVisible の記述は、問題なく実行できました。 ですから、単純にシート名が「シートB」でないとか(または半角全角違いとか)、ブック保護がかかっているとか、別のブックがアクティブな状態になっているとかではないでしょうか? ちなみにExcelのVerはいくつでしょうか?Excel95以前だと#1さんの方が正解かも知れません。
- taknt
- ベストアンサー率19% (1556/7783)
原因は わかりませんが 対処としては if xlSheetVisible then Worksheets("シートB").Visible=true else Worksheets("シートB").Visible=false end if とかいうふうにしてみたら いかがでしょうか? ちなみに xlSheetVisible って xlSheet.Visibleのことかな?
補足
対応ありがとうございます。 「xlSheetVisible」とは、worksheetオブジェクトのVisibleプロパティに設定できる定数です。 VBのHelpに載っていました。 教えていただいた方法を試しましたが、同じエラーが出ます。 それどころか、Visual Basic Editorのプロパティウィンドウから、シートBのVisibleプロパティを「xlSheetVisible」(表示)にしてもエラーになります。 ひょっとしてシステムが不安定なんでしょうか…。
補足
どうもありがとうございます。 お答え頂いたお二人に大変申し訳ありませんが、マシンを再起動させて操作したところ、問題無く機能するのを確認できました。 ちなみに、OSはWindows98、ExcelのVer.は2000です。 ご報告が遅れてしまい、大変失礼致しました。 しかし、何故いきなりエラーとなったかは不明のままです。また再度同じ現象が起こる可能性も否定できません。 今後もまたお聞きすることがあるかも知れませんが、その際もよろしくお願いします。 どうもありがとうございました。