• 締切済み

EXCEL2000VBAのアプリケーションエラーについて

EXCEL2000VBAにてユーザーフォームを使ったマクロを作ったのですが、マクロを実行しユーザーフォームからエクセルのシートにデーターを移行する際に、アプリケーションエラーというエラーがでます。 他のイベントプロシージャの動作ではこのエラーは発生しません。 EXCEL2003でも発生しました。 はっきり分かりませんが、必ずアプリケーションエラーが生じるのではなく、1,2度保存や終了を繰り返した後に発生するようです。 アプリケーションエラーどういった場合に発生するのでしょうか? また、なぜこのようなことが発生するのでしょうか? 初心者ですのでよろしくお願いいたします。

みんなの回答

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

こういう曖昧な質問では具体的な回答は望めませんよ。 なぜ起こるのかはそれがエラーだから。 タイミングで発生するということならおそらくActivateやSelectが出来ないような状態なのにそうしようとしているとか。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

小生は何度も他の質問でも書いたが、プログラムのエラーの原因指摘の質問は、コーディングを全く載せないで、質問しても、答え難いと思いますよ。色んなケースが考えられるからです。コーディングが長くてと言うことであっても、エラーが指摘されている付近を出すとか。仕事内容が判ってしまうなら、少し変数名を変えるとか。要点らしいところを摘出する、疑わしいところに目をつけるのも、プログラムデバッグの能力の大切なポイントのはずです。 (1)SheetのActivateやSelectが絡んでいないか。 (2)セル番地を変数で決めていて、その行や列を表す 変数の値が正常か。

関連するQ&A

  • VBAで実行押すまでExcel非表示にしたい

    VBAでユーザフォームを作成しました。 Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、 ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか? マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です どうか教えてください。

  • Excel-VBAでアプリケーションエラー

    現在、Excel-VBAで作成されたマクロの保守を行っております。 このマクロで現在、アプリケーションエラー(問題が発生したため、Microsoft Excelを終了します。・・・)が発生しています。処理の内容を調べると、以下の通りです。 (1)ブックAのマクロで、ブックBを開く (2)ブックAで、自ブックをクローズする。 (3)アプリケーションエラーが発生。 (4)(3)の時点では、ブックBのみ開いており、アプリケーションエラーのダイアログで、Excelを再起動をチェックし、「送信しない」を選択するとブックBが一旦閉じられ、その後ブックBが開かれる。 →したがって、異常終了しているのは、ブックBと想定される。 この事象を回避する方法をどなたかご存じありませんでしょうか?

  • Excel2000とExcel2002のVBAの違いについて。

     以前、このカテゴリーにて、Excel2000におけるVBAのマクロを教えてもらったのですが、そのマクロ入力済みエクセルファイルをExcel2002へ移植したら、上手くVBAが働きません。  具体的にいうと、シート1に入力したデータの履歴を、シート2にて保存していくマクロなのですが、Excel2002では履歴のシートに上書きしていくことがあります。(たまに発生する)  Excel2000ではキチンと履歴のセルが全て残ります。  どなたか、この不具合を認識しておられる方。もしくは、対策をご存知の方がいらっしゃいましたら、教えてください。  

  • Excel2007のマクロ(excel4.0)のSELECT関数でマクロエラーが発生する

    Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はマクロ(excel4.0)で定義されており、下記のコマンドです。 =SELECT(!選択エリア) マクロエラーの内容は下記になります。 ------------------------------- マクロエラー [dbg.xls]マクロ(excel4.0)BV28 ------------------------------- やりたい事はシートの特定の範囲を選択することです。 "選択エリア"は正しく定義されていることは確認してます。 (=シート名!$D$4:$CY$103 と定義してます) Excel2000やExcel2003ではマクロエラーが発生せずに正常に選択されます。 Excel2007のマクロセキュリティ設定を「すべてのマクロを有効にする」にしてます。 開発者向けのマクロ設定を「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックしても改善しません。 ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • 旧VBAがExcel2013で突然実行エラー

    Excel2003で作ったVBAマクロを互換モードで保存し、ずっとExcel2013で実行できていましたが、2014.12.13に実行しようとしましたら、 Sheets("当番表サンプル").Select で実行エラー(インデックスエラー)になってしまいました。 Excel2010で実行したら、通りました。 どういう理由でしょうか?

  • Excel2007のVBAでPreviewすると

    初めまして。 Excel2007のVBAで困っていることがあり解決方法を探しています。 もともとExcel97で稼働していたマクロ+VBA付きのシートをExcel2007で稼働させようとしています。 マクロ・VBAで作成されたシート(sheet2)をフォームに配置した印刷ボタンをユーザーに押してもらうことでプレビューを表示します。 印刷ボタンを押したときのプレビューのコード Worksheets("sheet2").PrintOut Copies:=1, Preview:=True でプレビュー画面を表示したところ、印刷ボタンや印刷設定ボタン等の上部にあるボタンが薄いグレーの配色で押せなくなりました。 調べた結果、ScreenUpdatingがfalseだと同じ状態になるとわかったので Application.ScreenUpdating = True Worksheets("sheet2").PrintOut Copies:=1, Preview:=True と書き換えましたが、不具合は解消されませんでした。 またブックを閉じずに、マクロを再起動させて同様の動作をおこなうと 何故かちゃんとボタンが押せるプレビューが表示します。 その状態のブックを保存して改めて開くと同じようにプレビューのボタンが押せなくなっています。 同じような現象で解決された方いらしたら解決方法を教えて頂ければありがたいです。 よろしくお願いいたします。

  • Excel2002VBA「~のときは○○、そうではないときは何もしない」

    VBA初心者です。環境は、Excel2002で、Windows2000です。 VBAで、下記のようにしたいのですが、どうしてもいい方法を思いつきません。 どなたか、ご指導願います。 マクロ実行時にSheet2があるときは、Sheet2を削除。 ただし、ないときには何もしないで、次の処理へとぶ。 On Error GoTo を利用するのでしょうか? けれど、エラー処理へとんだ場合、どう処理したらいいのか分かりません。 どうぞよろしくお願いします。

  • Excel2007でBOOK間のシート移動をVBAで行うとエラーになる

    Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAで開発されており、下記のコマンドです。 Sheets(移動元シート名).Move Before:=Application.Workbooks(移動先ブック名).Sheets(1) 異常の内容は下記になります。 ------------------------------- ?err.Description 移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 ?err.Number 1004 ------------------------------- 移動元BOOKは1シート、移動先BOOKは1シートあります。 これをExcel2000で実行すると正常にシートが移動できます。 (移動元BOOKのシートがなくなりBOOKが終了して、移動先BOOKは2シートになります) Excel画面の移動元シートを選択して、右クリックメニューの「移動またはコピー」で移動先ブックを指定して移動すると 「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。」 とVBAから実行した時と同じ内容のエラーダイアログが表示されました。 (Excel2000では手動でも移動できました) Excel2007では1シートで構成されたBOOK間の移動はできないのでしょうか? また、これをVBAで対策しようとした場合にどうしたら良いのでしょうか? ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • Excel2007マクロでメモリが増加し続ける

    Excel2007でVBAでマクロを組み込んだところ、 クリックイベントが走る度に、仮想メモリが増加し続けるようになってしまいました。 シート上にActiveXコントロールを配置し、 ActiveXコントロールのクリックイベントプロシージャに VBAでマクロを組み込んでいます。 内部で使っているオブジェクトは、 きちんとNothingで解放しています。 マクロを組み込むと必ず発生する現象ではなく、 シート上に配置しているコントロールの数、 ブックのシート数、 モジュールの数、ステップ数、 イベントプロシージャの処理ステップ数、 などのオブジェクトの量が多くなると、 仮想メモリが増加し続けるという現象が起きるようです。 オブジェクトの数、サイズによっては、 1クリックで50Mくらいずつ増加することもあり、 すぐにメモリリークしてしまいます。 XP+Excel2007の環境でのみ発生します。 Vistaでは発生しません。 SPはそれぞれ、XP SP2、Excel 2007 SP1です。 なぜ、このような現象がおきるのでしょうか?

  • 【Excel VBA】ユーザーフォーム

    Excel2003を使用しています。 内容的には前回の(質問No.3376017)続きなのですが… あるシートに対して、印刷範囲指定のマクロを作りました。 印刷不要ページを指定して、それ以外のページを印刷するというもので、印刷開始ページ、終了ページ、不要ページをユーザーフォームを作ってテキストボックスに入力するようにしました。 そのテキストボックスの下に、『設定』と『キャンセル』のボタンを作っていますが、『キャンセル』を選択した場合は、このマクロを実行しないで終了させたいのですが、可能ですか? 『設定』と『キャンセル』の処理は、イベントプロシージャ(クリック)に記述していますが、『キャンセル』ボタンをクリックしたときにマクロを実行しないで終了するには、どのように記述すればいいでしょうか?[Exit]を使うのかな?と思って書いてみましたが、エラーが出てしまいました(^_^;) よろしくお願いします。

専門家に質問してみよう