電子書籍の厳選無料作品が豊富!

※マクロ初心者です。
メインシートから非表示にしている入力シートを呼び出したいのですが、EXCEL2000だと下記のマクロで対応できました。
ところがEXCEL97だと”実行時エラー'424' オブジェクトが必要です”と表示されます。

Sub メインから入力()
With Worksheets("入力")
.Visible = True
End With
 With Worksheets("入力")
  .Select
 End With
End Sub

やっぱり"WITH"を2回繰り返すのは間違いでしょうか?

A 回答 (5件)

これだけだったら わざわざ Withを使う必要はないですね。


With Worksheets("入力")
.Visible = True
.Select
End With

としてあげれば withの効果も若干はあるでしょうが・・・・。

問題となっているのは、多分、非表示だと思います。
いったん 非表示を表示にして
それから 処理が終わった後、非表示にしてあげれば
問題ないと思いますよ。
    • good
    • 0
この回答へのお礼

返事遅くなりました。
おっしゃるとおり、WITHは二つもいりませんでした。
無事解決です。ありがとうございました。

お礼日時:2003/06/26 08:15

With Worksheets("入力")


.Visible = True
End With
Worksheets("入力") .Select

で、やってみて貰えませんか?
97環境が無いもので。
もしかしたら97ではメソッドの記述に問題があるかも知れないと思って・・・
結果を教えて下さい。
    • good
    • 0
この回答へのお礼

教えていただいたのでも問題なかったです。
ありがとうございました。

お礼日時:2003/06/26 08:18

#3です。

ざっとMSDNあたってみたのですが、他のと勘違いしてました。すみません。

しかしながら…
とりあえず、トラブルシューティングのために、
基本的な記述方法で試してみるのはやってみたほうがよいです。

あとは、Excel97のVBAの画面で、デバッグ(ステップごとにスクリプトの確認)をやってみると、どこの行でエラーが出ているかわかりますよ。

では
    • good
    • 0

すごーくかすなか記憶で、確信がもてないんですけど、


withステートメントってVB6からの新機能ではなかったですか?

つまり、Excel97ではwithステートメントを理解できないと思うのです。

ということで、withステートメントを外して、それぞれのプロパティとメソッドをきちんと書くと動く気がしますが…。

Sub メインから入力()
Worksheets("入力").Visible = True
 Worksheets("入力").Select
End Sub
    • good
    • 0
この回答へのお礼

単純にWithが二つもいらないだけのお話しでした。
ありがとうございました。

お礼日時:2003/06/26 08:17

こんにちは。



エラーの原因ですが、シートの名前を変更してないですか?


あと、Withの使い方を誤解してるみたいですね。
質問にあるような使い方でも問題はないですが、
Withを使うメリットもないです。

#1さんの回答のように、ひとつのオブジェクトに対する操作を、まとめて書くような使い方をします。
    • good
    • 0
この回答へのお礼

おっしゃるとおりでした。
ありがとうございました。

お礼日時:2003/06/26 08:15

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