VBAに関する質問です。

VBAに関する質問です。 ある行に差し掛かると”実行時エラー1004”(アプリケーション定義またはオブジェクト定義のエラーです)と出てしまいました。 しかし、いくら見直しても、どこもおかしいところがなく、 そこの行だけ、取り出し、1つのプログラムで走らせるとうまく回ってくれます。 (With worksheet("~") end with などで間違ったかと思いましたが、それは、ほかの行のものがうまく言ってるため、絶対にないと思います。) そこで、そこの行だけ別のプログラムとして作成し、本体のプログラムでは、callでそのプログラムを走らせればうまくいくかと思い、 そのようにしてみたのですが、同じように、実行時エラー1004ですとのコメントが出ます。 このような、どこもおかしくないはずなのに実行時エラー1004でてしまった経験がある方はいらっしゃいますか? もしこのような経験をしていらっしゃり、解決方法をご存知でしたら是非ご教示ください。 よろしくお願い致します。

Visual Basic10,750閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

1

こんにちは。 エラーの発生する近所に、Rangeをselectするようなコードはありますか? そのときに、ありえないブックありえないシートのタイミングでselectしようとすると、1004のエラーが発生しやすいです。 それから、エラーの発生するコードがシートモジュールと標準モジュールの違いです。 同じコードでも、標準モジュールだとエラーにならないのに、シートのコードだとエラーが発生します。 シートを超えた処理には、スコープの限界が仕様として存在します。 withのコードは、本物のコードではないようなので、細かいことは、そちらで確認してください。 正しかったらWorksheetsになっています。End Withになるはずですしね。

1人がナイス!しています

ThanksImg質問者からのお礼コメント

原因はわかりませんが、 Worksheets("~").select with activesheet end with と記述することで問題は解決されました。 求めていた回答ではありませんが、一般的な回答を一番望んでいたので、そのような回答形式をしてくださったporihikoletskunさんをベストアンサーにさせていただきました。ほかの方も回答してくださりありがとうございました。

お礼日時:2013/5/8 19:30

その他の回答(3件)

0

日々エラーと戦う者です 基本的に自分を疑った方が良いかと… 善くも悪くも、書いた通りにしか動きませんし オブジェクトが無いということは、指定した場所が無いということなんで、スペルが違うとか、指示が足りて無いとかいう事ですかね? 問題の部分を書き出して頂けたら幸いですが。 あとworkseets(゙゙) sがいる気がします コレクションとかにはつけないといけないんじゃなかったかな? ちとうろ覚えです

0

プログラムのコーディングによっては、エラー発生行と、実際のエラー箇所は異なる場合が有ります。 (アプリケーション定義またはオブジェクト定義のエラーです)と表示されているのなら、定義しないでオブジェクトなどを使用していないか確認して下さい。 ja7awuさん の回答にも書いてありますが、ブレイクポイントを設定してステップ実行でエラー箇所を探ってみてはどうでしょうか? デバッグの基本です。 ↓デバッグの方法(ブレイクポイントのセットとステップ実行) http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard41.htm http://koikide.net/hensyu.html http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_030.html http://www.excel-excel.com/vbachair/step1-7.html http://www.ken3.org/vba/debug.html イミディエイトウィンドウ、ウォッチ式なども利用してデバッグします。

0

これ↓では解決に繋がる状況説明が、全く出来ていません。 > いくら見直しても、どこもおかしいところがなく > ほかの行のものがうまく言ってるため、絶対にない > どこもおかしくないはずなのに実行時エラー1004 初歩的なエラー内容ですし、「何処もおかしくない筈」と決め付けないで 今までの質問でもデバッグ手法を習得出来ていませんのでステップ動作 させるなどで再度 確認してみてください。 「筈」はハズレますよ。 あとは、そのコードを提示してみてください。