- ベストアンサー
Excelマクロ初心者がメインシートの非表示入力シートを呼び出す方法
- Excelマクロ初心者が、EXCEL2000では動作するがEXCEL97でエラーが発生する問題について質問しています。
- 具体的には、メインシートから非表示にしている入力シートを呼び出すためのマクロに関して、EXCEL2000では問題なく動作するがEXCEL97ではエラーが発生するという状況です。
- 質問者は「WITH文を2回繰り返すのが間違いか?」と疑問を持っています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
これだけだったら わざわざ Withを使う必要はないですね。 With Worksheets("入力") .Visible = True .Select End With としてあげれば withの効果も若干はあるでしょうが・・・・。 問題となっているのは、多分、非表示だと思います。 いったん 非表示を表示にして それから 処理が終わった後、非表示にしてあげれば 問題ないと思いますよ。
その他の回答 (4)
- redraft
- ベストアンサー率16% (9/55)
With Worksheets("入力") .Visible = True End With Worksheets("入力") .Select で、やってみて貰えませんか? 97環境が無いもので。 もしかしたら97ではメソッドの記述に問題があるかも知れないと思って・・・ 結果を教えて下さい。
お礼
教えていただいたのでも問題なかったです。 ありがとうございました。
- norakuma
- ベストアンサー率29% (293/977)
#3です。ざっとMSDNあたってみたのですが、他のと勘違いしてました。すみません。 しかしながら… とりあえず、トラブルシューティングのために、 基本的な記述方法で試してみるのはやってみたほうがよいです。 あとは、Excel97のVBAの画面で、デバッグ(ステップごとにスクリプトの確認)をやってみると、どこの行でエラーが出ているかわかりますよ。 では
- norakuma
- ベストアンサー率29% (293/977)
すごーくかすなか記憶で、確信がもてないんですけど、 withステートメントってVB6からの新機能ではなかったですか? つまり、Excel97ではwithステートメントを理解できないと思うのです。 ということで、withステートメントを外して、それぞれのプロパティとメソッドをきちんと書くと動く気がしますが…。 Sub メインから入力() Worksheets("入力").Visible = True Worksheets("入力").Select End Sub
お礼
単純にWithが二つもいらないだけのお話しでした。 ありがとうございました。
- happypoint
- ベストアンサー率36% (521/1422)
こんにちは。 エラーの原因ですが、シートの名前を変更してないですか? あと、Withの使い方を誤解してるみたいですね。 質問にあるような使い方でも問題はないですが、 Withを使うメリットもないです。 #1さんの回答のように、ひとつのオブジェクトに対する操作を、まとめて書くような使い方をします。
お礼
おっしゃるとおりでした。 ありがとうございました。
お礼
返事遅くなりました。 おっしゃるとおり、WITHは二つもいりませんでした。 無事解決です。ありがとうございました。