• 締切済み

実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません

エクセルVBAを使用して、あるシートAのコードに   Worksheets("シートB").Visible = xlSheetVisible と記述して、既に非表示設定してある別のシートBを表示させたいと思っているのですが、表題のエラーが出て実行できません。 上記記述文のところでエラーとなります。 どなたか原因をご存知の方は、その原因と対処法をお教えください。 よろしくお願い申し上げます。

みんなの回答

  • wildcard
  • ベストアンサー率54% (54/100)
回答No.2

excel97やexcel2000を使用していますが、 Worksheets("シートB").Visible = xlSheetVisible の記述は、問題なく実行できました。 ですから、単純にシート名が「シートB」でないとか(または半角全角違いとか)、ブック保護がかかっているとか、別のブックがアクティブな状態になっているとかではないでしょうか? ちなみにExcelのVerはいくつでしょうか?Excel95以前だと#1さんの方が正解かも知れません。

secky_martha
質問者

補足

どうもありがとうございます。 お答え頂いたお二人に大変申し訳ありませんが、マシンを再起動させて操作したところ、問題無く機能するのを確認できました。 ちなみに、OSはWindows98、ExcelのVer.は2000です。 ご報告が遅れてしまい、大変失礼致しました。 しかし、何故いきなりエラーとなったかは不明のままです。また再度同じ現象が起こる可能性も否定できません。 今後もまたお聞きすることがあるかも知れませんが、その際もよろしくお願いします。 どうもありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

原因は わかりませんが 対処としては if xlSheetVisible then Worksheets("シートB").Visible=true else Worksheets("シートB").Visible=false end if とかいうふうにしてみたら いかがでしょうか? ちなみに xlSheetVisible って xlSheet.Visibleのことかな?

secky_martha
質問者

補足

対応ありがとうございます。 「xlSheetVisible」とは、worksheetオブジェクトのVisibleプロパティに設定できる定数です。 VBのHelpに載っていました。 教えていただいた方法を試しましたが、同じエラーが出ます。 それどころか、Visual Basic Editorのプロパティウィンドウから、シートBのVisibleプロパティを「xlSheetVisible」(表示)にしてもエラーになります。 ひょっとしてシステムが不安定なんでしょうか…。

関連するQ&A