- 締切済み
VB上で実行中の無限ループの止め方
今まで、CUIベースのBASICでのプログラムの経験はあるのですが Visual系のBASICは初心者です。 原因はわかっているのでプログラムの修正はできるのですが VB上でコンパイルして実行したときに無限ループに陥ってしまって どうにもプログラムをとめられなくなります。 そんなことがないように、実行前に全てのプロジェクトを保存して いますので、そんなに実害はないのですが、どうすればとめられるのでしょう・・ 今現在は、タスクマネージャーから強制終了させています。
- xiaolong_goo
- お礼率64% (252/388)
- Visual Basic
- 回答数4
- ありがとう数21
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Hk2001
- ベストアンサー率48% (24/49)
No2.さんの回答でいいと思います。 Ctrl + Pause を 押すと Break になりますよ。
- j_euro
- ベストアンサー率25% (29/115)
無限ループの一番内側に DoEvents を入れておくと、ウィンドウ切替え->デバッガ終了操作が出来ますよ 危なそうなとこにも入れておくと、何かと安心です。
お礼
何とかなりました。 ありがとうございました。
- mfuku
- ベストアンサー率50% (173/345)
コンパイル語ではなく、デバッグ中に、ということですよね。 その場合は、ctrl + Break で一時停止になります。
お礼
それが、ならないのです・・・・
- coolguys
- ベストアンサー率18% (351/1917)
強制終了でも良いのではないでしょうか? というか、私はいつも強制終了なので、 それ以外は方法を知りません ^^;
お礼
早速のお返事ありがとうございます。 VBを強制終了する以外方法はないのでしょうかねぇ・・
関連するQ&A
- Win98 + Excel97 + VB での無限ループの強制終了
表題の件なのですが、 例えばエクセルシートの適当な位置にボタンを配し、以下のようなソースを組んだとします。 Private Sub CommandButton1_Click() s=0 Do While (s<15) s = s + 1 Loop End Sub もしも誤って s=s+1の行をコメントにしたら無限ループとなり エクセル及びVBが【実行中】のまま固まってしまいますよね? この場合「タスクマネージャ」を使って強制終了しています。 当然エクセルもVBもタスクから消滅してしまいます。 ファイルを保存していない時にこの状態になるとかなりブルーです。 作成途中のプログラムを残せるようなプログラムのみ終了させる方法 または 無限ループ内に「ループから強制的に抜け出すようなアクション」の埋め込み方法(または以下の意味は解りますかね…(汗)) 等、ありましたら回答よろしくお願いします。 それともこのような状態になったら「ソースを作ったあなたが悪い!最終保存以降の編集内容はあきらめよ」と言うことなんでしょうか? ちなみに論点はForNext等への変更ではなく あくまで「誤って表記してしまった無限ループからの脱出」です よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBで無限?ループからスタックオーバ
VisialBasicで、デバッグ中にスタックオーバでプログラムが異常終了しました。呼出履歴をみると ある関数→非Basicコード→ 同じ関数→非Basicコード→ 同じ関数→非Basicコード→ と連続している様です。 関数はイベントプロシージャ(_selChange)ですが、 プロシージャの途中で非Basicコードを呼んでる様です。(ステップ実行でも同じ。) VB初心者ですが、原因が全く解りません。 どなたか思い当たる人はいませんか?
- 締切済み
- オフィス系ソフト
- visual C++ 2008での無限ループの対応
最近C言語でのプログラミングを始めたのですが、visual C++ 2008で実行をしたときプログラムが無限ループになっていた場合どすれば元にもどるのでしょうか?ご存知の方がおられましたら対処方法を教えてください。お願い致します。
- ベストアンサー
- C・C++・C#
- 初学者向け無限ループ検出ツールの作成について
初学者向けに無限ループを検出するツールを作りたいと思っています 確かに制作したプログラムをコンパイルし、実行してしまったらいいのですが… 初学者には無限ループを発見するのが難しいと思います そこで、初学者に対しどこが無限ループの可能性があるかを教えるツールの開発を目指しています 自分の中ではオーバーヘッドがない(少ない)静的解析を行いたいと思っています 構文解析を行い、ループ文を発見したあとの考え方が分からずに困っています 条件文に使う値の変化はデータフロー解析を用いればいいことはわかっていますが、その解析にもいろいろな種類があり、どれをどのように使えばいいかわかりません また、ループ分中の条件文の変数の変化をどう考慮して無限ループを検出するかが思いつかず困っています
- 締切済み
- 情報工学
- VB6のプログラムをVS2017で開くには?
VB6や、VC++で作成されたプログラムを VisualStduio2017へ移行することになりました。 VisualStduio2017で、VB6やVC++のプロジェクトを開いて コンパイルエラーになる部分を手修正していこうと思ったのですが、 そもそも開くことができません。 新たにプロジェクトを作成して、ソースコピーをして貼り付けし、 コンパイルエラーになる部分を手修正するようなやり方ぐらいしかないでしょうか?
- 締切済み
- Visual Basic
- 無限ループでDebug.Writelineしてしまい、VB2005が応用しません(>_<)
VB2005 ExpressEditionです。 先ほど、間違えて無限ループ内でDebug.Writelineメソッドを使ってしまい、プログラムのデバッグ中止ボタンを押せたにも関わらず、いつまでもイミディエイトウィンドウに文字列がトレースされます。かれこれ30分ぐらい経ってもまだ終わらず、ビジー状態で次の作業に移れません。 プログラムを強制終了するしかないでしょうか? 保存していない変更が破棄されると困るのですが、強制終了しても作業時の状態をを復元する機能などあるでしょうか?
- 締切済み
- Visual Basic
- VBで作成したパッケージを実行すると実行時エラー'429'が発生してしまいます。
VBにてcsvファイルのデータをOracleデータベースにinsert、updateするプログラムを作成し、開発パソコンにて正常に動作することを確認しました。 開発パソコン ・Windows2000 Server(SP3) ・Visual Basic 6.0 Enterprise Edition ・Oracle 9i 本番パソコン ・Windows2000 Server(SP3) ・Oracle 9i テストパソコン ・Windows2000 Professional(SP1) 今、上記のように3台のパソコンがあります。 開発パソコンで開発したVBのプログラムをコンパイルしてexeを作成し、開発パソコン上から開発パソコン上のオラクルに対してプログラムを実行すると正常に動作します。 本番パソコンには、Visual Basicをインストールしていないため、プログラムを実行できるようにするには開発パソコンにてディストリビューションウィザードを使ってセットアッププログラムを作成し、本番パソコンにインストールする必要があると思います(質問1.ここまでは正しいですよね??)。 そこでウィザードに沿ってセットアッププログラムを作成し、まずはテストパソコンにてインストール後に実行してみたのですが、エラーが出てしまいました。 「実行時エラー'429' ActiveX コンポーネントはオブジェクトを作成できません。」 質問2.どうすればエラーが発生することなくプログラムを実行できるようになるでしょうか? テストパソコンにオラクルクライアントが必要?それとも何かDLLの更新などが必要? もしおわかりの方いらっしゃいましたら教えて下さい。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- VBからPC-ANYWHEREの実行
どなたかご存知の方いらっしゃいましたら教えて下さい。 VISUAL BASICからSYMANTECのPC-ANYWHEREを実行するにはどうしたら良いのでしょうか。 具体的にやりたいこととしては、 (1)VBからリモートオブジェクトを作成し、既存のホストに接続 (2)リモート側からホスト側へ指定したフォルダにテキストファイルを送信 (3)送信完了後、ホストにインストール済みのプログラムを実行し、処理を行う。 (4)ホスト側のプログラムからは処理成否のログデータが吐き出されるので、それをリモート端末にコピー。 (5)接続を切る。 以上のようなことです。 ちなみにPC-ANYWHEREのバージョンは10.0、VBは5.0SP3です。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- VB.netの初学者なんですが、
VB.netの初学者なんですが、 VB.netが詳しい方、是非お願いいたします。 visual studio2008で、以前のVB.net(2003)のプログラムをコンパイルしてますが、 フォルダ名(abc.net)配下にいくつのプロジェクトがあります、main,ttt,ccc.exeのプロジェクトがありますが、abcってのプロジェクトがありません。 普通にコンパイル通れば、main.exe,ttt.exe,ccc.exeなどの実行モジュールが生成されて、デバッグ実行すれば、...\abc.net\obj\Debug\配下にmain.exe,main.pdb,ttt.exe,ttt.pdb,ccc.exe,ccc.pdbなどのファイルを生成できました。 以前の方は...\abc.net\obj\Debug\abc.exe,とabc.pdbの二つファイルを生成していました。私はすべてのプロジェクトをコンパイルして、デバッグ実行させて、その二つファイル(abc.exe,abc.pdb)の更新 日付は変わらず、以前の日付になっています。 どうすれば、abc.exeっていう実行モジュールが生成できますか。 それは現有のプロジェクト(main,ttt,ccc)中の1つプロジェクトにより、生成したと考えていますが、 どのファイル(拡張子)を見ると、どのプロジェクトより生成したことを分かりますか。 少し長いですが、よろしくお願いいたします。
- 締切済み
- Visual Basic
お礼
Breakにならないです。どこかで変なコードを記述してるかも知れません。 ちょっとつらいです。