• ベストアンサー

VBAが止まらない

vbaを実行して中々終わらないので、強制終了しようとリセットボタンを押してもとまりません。 ctrl+pauseを押しても、うんともすんともいいません。 ×ボタンで閉じようとしても閉じません。 タスクマネージャーから強制終了すればとまるのですが、 なぜこのような事が起こるのでしょうか? 1日1回の頻度で起こります。 ファイルが壊れてるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

こんにちは。 無限ループが発生しているなら、ループの中で、 DoEvents を入れれば、割り込み信号が入りますから、止まりやすくはなりますが、 質問に対する解決になるのか、こちらでは分かりません。 意図的か不可抗力で、無限ループなどを発生するのか、させているのかどうかさえ、質問文では分かりません。意図的なら、そのコードを見せてくれれば、それなりに、その正規の離脱法を披露できると思いますが、今の状態ではなんとも言えません。VBAには、そういうイレギュラーの方法があります。 >ファイルが壊れてるのでしょうか? ファイルが壊れていれば、例えば、メモリーリークするので、最後は、フリーズします。 たぶん違うはずです。

rrppfssrzsa
質問者

お礼

ご回答ありがとうございました。

その他の回答 (3)

noname#223464
noname#223464
回答No.3

No2です。 fnキー使わなくても止まりました。 大変失礼しました。

rrppfssrzsa
質問者

お礼

ご回答ありがとうございました。

noname#223464
noname#223464
回答No.2

VBAの中断は、ctrl+breakです。 ノートPCとかフルサイズ出ない場合で、pauseとbreakが同じキーであれば、fnキーも押さないと駄目ですよ。

rrppfssrzsa
質問者

お礼

ご回答ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

マクロの実行が「進行中であれば」,ESCキーを押せば(押し続けていれば),マクロの命令が進んだところでブレイクします。 ただまぁ,ご相談の状況からすると単純にフリーズっぽくなってる様子ではありますけどね。 具体的にどんなマクロで症状が起きているのか不明なので「これが問題だ」と特定することは勿論できませんし,ご相談もそれをどうしたいという内容ではありませんが,いろんな不具合や故障の可能性はもちろんあると思います。 実際のマクロで,たとえばループの中でイミディエイトウィンドウに進行中のカウンタの値を debug.print 何か目安になる変数等の値 のようにして出力させて,ループが進行しているか目視で確認したり,マクロの随所に「ここまで進んだシルシ」をやはりdebug.printさせるなどで,「具体的にどの行で」マクロの処理が滞っているのか,探り出してから直接の原因を探ってみて下さい。

rrppfssrzsa
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • VBAが重くなってしまった

    ExcelでVBAを組んでいましたが、ある日突然このVBAを実行すると途中でCPUが100%になったままExcelが復帰しづらくなりました。 強制的にESCキーを押してVBAを終了させてもExcel自体が動作が重くなってExcelブックとVBEのウインドウを行ったり来たりするにもCPUがしばらく100%になって動作が非常に重くなります。 結局タスクマネージャからExcelを強制終了するのですが、原因がわかりません。 VBAの内容に誤りがあるのでは?と思って何日も調べましたがVBAでエラーがでることはなく、VBAの実行が非常に重く、今まで3秒で実行が終わっていたものが数分かかってしまいます。 Windows2000SP4+Excel2000SP3です。おわかりの方いるでしょうか?たいへん困っております・・・。

  • 【VBA】エクセルを絶対に閉じれなくしたい。

    エクセルのある特定のBookを閉じれなくする方法を探しています。 分かる方、どうかご教授願います。 ある特定のBookで、毎日必ずスタッフに入力作業をしてもらってます。 Bookは、ある特定の条件が揃うまで閉じる事が出来ないようにしています。 閉じれなくするのは、下記のようなコードを書いてます。 ※実際はもう少し応用してますが。 Private Sub Workbook_BeforClose(Cancel As Boolean) Cancel =True End Sub で、シートの上に閉じる用のコマンドボタンを用意して、ある特定の条件が そろった場合にだけ、コマンドボタンがイキ(Enabled=True)になって、 ボタンが押せて、保存と共にブックを閉じれるようにしています。 これで、大方イメージしている事が出来ているのですが、最近抜け道が横行 している事が判明しました。 つまり、タスクマネージャーからの強制終了です。 で、この強制終了も不可能にする方法はないでしょうか? 何かタスクマネージャーの起動自体を制御する方法もあるみたいですが・・・。 出来ればVBAのコードで出来たら助かります。 たぶん、API?とか言うのを使うのかなって思いますが・・・。 何かPCの設定をする事で出来るかもしれませんが、その設定自体もVBAで やりたいです。 と言うのは、各スタッフのPCごとに設定してしまったら、いつでもタスク マネージャーの使用、強制終了が不可能になってしまいます。 やりたいのは、この特定のBookを開いている時だけ、不可能にしたいんです。 だから、Bookを開いた時点でコードを実行して、不可能にする。 閉じる直前にもコードを実行して、それを解除するってのをやりたいんです。 どうかお知恵をおかしください。

  • VBAからタスクの終了

    タスクマネージャーのアプリケーションタグにて、 右クリックでタスク終了する操作をエクセルVBAで行いたいのですが可能でしょうか? VBAでWebBrowserを使ってネットにアクセスし、データを取得しているのですが、 たまに「スクリプトエラー」が出て中断してしまいます。 スクリプトエラー画面で「はい」もしくは「いいえ」ボタンをマウスでクリックすれば次に進みますが、 とりあえず、VBAで強制的に画面を消して中断しないようにしたいのです。 スクリプトエラーの消し方を調べてIEの設定をいじっては見たのですが、 たまに発生する傾向は変わりませんでした。 スクリプトエラーはタスクマネージャーのアプリケーションタグには表示されます。 (プロセスタグには表示されません。) ネット検索してみると、プロセス終了はありましたが、タスク終了に相当するものは 見つけられませんでした。 なお、ネット検索でAPIのEnumWindows関数を使ってアプリケーションタグに表示されているものの取得までは わかりましたが、終了させる操作はわかりませんでした。

  • EXCEL VBAマクロの実行優先度を下げたい

    いつもお世話になっております。 EXCEL VBAであるマクロを実行させています。 このマクロは終了するのに丸1日以上掛かるもので、それを実行している間、EXCEL.EXEのCPU使用率が100%になってしまいます。 私の所有するPCパワーが乏しい&所有PCが1台だけのため、このマクロを実行している間、EXCEL以外の他の作業の動作がとても遅くて困っています。 例えば、テキストエディタで文字を打って変換するのに数秒かかったりします。 タスクマネージャでEXCEL.EXEのプロセス優先度を下げることができるのは知っていますが、以前別のマクロでそれを実行して他の作業をやっていた時にEXCELが強制終了された経験があり、私のPCではタスクマネージャによるプロセス優先度の変更はシステムが不安定になることに繋がるようです。 ですので、できることなら、実行中のVBAマクロのみ優先度を下げたいんですが、そのようなことは可能なのでしょうか。 よろしくお願いいたします。

  • エクセルVBAでマクロ作成の途中の段階なのですが、

    エクセルVBAでマクロ作成の途中の段階なのですが、 前回作成した時に、プログラム記述の途中で半端に終了保存した為か? そのファイルを開くと、マクロが暴走しているようで、砂時計表示のままになっています。 暴走しているマクロを強制終了させようと、[Ctrl]+[Pause]キーを押しても駄目です。 なんとか、作業途中のマクロを開きたいのです。 何か方法はありますでしょうか? よろしくお願いします。

  • Ctrl+Alt+Deleteでタスクマネージャですが

    Ctrl+Alt+DeleteでWindowタスクマネージャが今まででていました。 ところが、ふとしたことから、 Ctrl+Alt+DeleteでCPU使用率とCPU使用率履歴がでます Windowタスクマネージャはよく、Windowを強制終了につかいました。 このCPU使用率の画面だと、なんのコマンドボタンも配置されていないので、困っています。

  • パソコンの起動後2

    Error110さんへ 1.タスクマネージャは立ち上がりますか? キーボード[Alt]+[Ctrl]+[Del] 2.Explorerは立ち上がっていますか? 3.多分立ち上がっていないと思いますので、タスクマネージャの [ファイル]→[新しいタスクの実行]→名前の欄に[explorer.exe]と書く→OKボタン 2でExplorerが立ち上がっていたら、プロセスタブでexplorer.exeをポイントし、下にあるプロセスの終了をクリック。次に3を実行する。 3まで確認しましたら、アイコン等が出てきて普通に使えるようになりましたが、再起動等をするとまた同じ状況になってしまいます。 ●PCの情報 OS:WindowsXP Professional

  • リソース不足のため、このタスクを完了することができ

    エクセル2010なのですが vbaを実行後、 「リソース不足のため、このタスクを完了することができません。選択するデータをすくなくするか、ほかのアプリケーションを終了して再度試してください。」と出る時があります。 毎回じゃないです。 何回かOKを押すと、消えて、vbaが中断し、ファイルが強制終了され、再度自動で開きます。 ファイルにイメージや画像をたくさん置いてるのですがそれが原因でしょうか? osはwin7です。

  • VBAのユーザーフォームについて

    VBAの全くの素人です。 ユーザーフォームについていくつか質問させてください。 テキストボックスにファイル名を入力し、実行釦を押す事で、IEを立ち上げ、画像ファイルを開くマクロを組んだ場合、 (1)「クリア」というコマンド釦を作り、その釦を押した際にテキストボックスに入力した値を消す為には、そのコードにはどのように記述すればよいでしょうか? (2)さらにその「クリア」釦を押す事により立ち上げたIEを閉じる事はできないでしょうか? (3)このマクロを組んだExelファイルを立ち上げた時点で、マクロを実行し、「終了釦」を作り、その釦により、Exelごと終了させるにはどうすれば良いでしょうか? 以上、素人の質問で恐縮ですがご教示ください。 よろしくお願いします。

  • エクセル2003での操作制限方法について

    エクセル2003でシートを作成、共有設定して使用しています 誤操作防止のためエクセル画面右上の終了(×)ボタンをVBAでロックしているのですが、少し知識の有る者はwindowsのタスクマネージャを起動し強制終了する荒業をする事態が発生しています。 タスクマネージャの操作禁止処理をExcel2003のマクロ又はVBAで実現できないものでしょうか、参考となるホームページ等ご教示願いたいと思います。 よろしくお願いします。

専門家に質問してみよう