• 締切済み

VBのsstab(MicroSoft Tabbed Dialog Control(SP6))について

VB6.0(SP6)で開発を行っております。 タブを使用している画面をロードする時に何らかのエラーが起きた場合、エラーメッセージを表示させてシステムをendで終了させたいのですが、エラーメッセージがでた後に画面がフリーズして残ってしまいます。vbpで実行すると正常にシステムを終了するのですが、exeを作って実行するとフリーズするという現象が起こります。 画面は残るのですがボタン等を押しても何も起こりません。フリーズの現象がでるのは、 1.フォームロード中にエラーが起きた場合 2.タブ上にラベルやテキストのオブジェクトがある場合   (タブ上に何もないときは正常に終了します) です。どうしたら正常に終了させられるか何かご存知の方いらっしゃいましたらアドバイスお願いします。

みんなの回答

  • mach999
  • ベストアンサー率75% (36/48)
回答No.1

フリーズ現象は再現できませんでしたが、確かにForm_Load内のエラー処理部でEndを実行してもフォームが表示されてしまうようですね。 EndをUnload Meにしたところexeファイルの方でも正常に終了しましたので試してみてください。 ちなみに、どんなエラーがフォームロード中に起き得るのかが分からないと判断が難しいので、明記しておいた方が良いと思いますよ。

gabera
質問者

お礼

回答ありがとうございました。 説明不足の点があったようですね。ご指摘ありがとうございます。 起こりえるエラーとは 1.DB接続の失敗(切断されていた等) 2.数字の項目にNULLが入っていた場合任意で不正なデータとしてメッセージを出して終了させています。 の2点です。 早速Unload Meも試したのですがフォームモジュールに記述する分には良かったのですが、データを読み込んだりする記述をクラス側(他の画面からも使用する)に書いているので、そうすると問題がありそうです。 Loadの記述をオブジェクトがアクティブ ウィンドウになったときに発生するActivateに記述してみたところ正常に画面を閉じて終了することができました。 たどたどしい説明ではありましたが、ご回答いただけてとても感謝しております。 ありがとうございました。

関連するQ&A

  • VB6のプロジェクトロードエラーについて

    よろしくお願いします 現在、VB6で開発しているシステムのメンテナンスを行なっているのですが、 先週まで正常にロードされていたプロジェクトでエラーが起こるようになりました。 プロジェクト起動後、オブジェクトライブラリは登録されていません。のメッセージBOXが出て、引続きフォームのロードを続けると、読込中にエラーが発生しました。詳細はlogを確認。というメッセージBOXが出ます。 logの内容が「行 17: クラス MSComctlLib.StatusBar(コントロール StatusBar1) はロードされていません。」という内容です。 最後にロードした時から触ってないのですがエラーになり始めました。 ただ、PCにaccess2010をインストールしましたのでその影響が出ているのでしょうか? すみませんが、よろしくお願いします。

  • vb6について

    会社で、GPIB、I/O、ActiveXコンポーネントの環境下で、 VB6のプログラムを使用して試験評価を行っているのですが、 VB6のコードを変更するにあたり、うまくいきません。 どなたかご教授願います。 内容は、 コードを変更したいので、元々の.vbpを開くと、 まず、「オブジェクトライブラリは登録されていません」とエラーが出ます。 その後、「プロジェクトのロードを続けますか?」となるので、OKを押します。 すると、「読み込み中にエラーが発生しました。・・・.logを参照してください」と出ます。 気にせず、OKを押し、コードの内容を変更したあと(※変更しなくても)、 プロジェクトの上書き保存をしたあと、.exeの作成(上書き)をすると、 また、「読み込み中にエラーが発生しました。・・・.logを参照してください」と出ます。 気にせず、OKを押し、作成した.exeを開くと、変更した内容になっていますが、 いざ、実行すると、「実行時エラー”13” 型が一致しません」とエラーが出ます。 .logの内容を確認すると、”クラス・・・がロードされていません”とか、 ”プロパティ名・・・が不正です”とか表示されています。 試験する上で、使用しやすいようにVB6のコードを変更したいのですが、 試験で使用しているPCで元々のコードを変更しようとすると、上記のようなエラーが出ます。 どなたか、解決方法を教えてください。

  • ワードで実行時エラー 424 オブジェクトが必要です

    Office 2003ですが、ワードの立ち上げ時に「ワードで実行時エラー 424 オブジェクトが必要です」のメッセージが出ます。VBのエラーメッセージのようですが、何をしたらよいのか判りません。とりあえずエラーメッセージのボックスを「終了」で閉じると文章は開きますが、保存時にフリーズします。

  • EXCELでactivexコントロールを挿入できな

    お世話になります。 環境はWindows8.1+EXCEL2010です。 タイトルの通り、ワークシート上にactivexコントロールのラベルやテキストボックスなどを挿入しようとすると「オブジェクトを挿入できません」というエラーが表示されてしまいます。 月並みな表現ですが、まさに昨日まで特に問題なく使用できていたため、原因がわからず非常に困惑しております。 ちなみに昨日まではVBAにてワークシート上に正常に配置できていたラベルコントロールが、本日では「実行時エラー1004: オブジェクトを挿入できません」というエラーを表示して正常に配置できなくなってしまい、異常が発覚した次第です。"Microsoft Forms 2.0 Object Library"への参照設定がなされていることは確認しています。 他に確認すべき点などございましたら、ぜひご教授いただければ幸いです。 よろしくお願いいたします。

  • VBのMediaPlayer8→MediaPlayer9シリーズ対応

    MediaPlayre8のコントロールを組み込んで 作成したプロジェクトを MediaPlayer9がインストールされている 新しいパソコンでプロジェクトを開くと "msdxm.ocxが見つかりません" という、エラーメッセージが表示されてしまいます。 System32フォルダを見ると"msdxm.ocx"は存在していましたが"msdxm.oca"が有りませんでした。 そこで、旧PCから"msdxm.oca"をSystem32フォルダへ コピーした所、プロジェクトのロードは成功しましたが、実行すると "実行時エラー 713 次のクラスは登録されていません。次のCLSIDオブジェクトを参照してください。" というエラーが発生してしまいます。 MediaPlayer8とMediaPlayer9の両方を コンポーネントに正しく設定する方法を教えてください。

  • IEXPLORE.EXEエラー

    最近、電源を切る際に エラーが発生したため、IEXPLORE.exe を終了します。 と出て、終了又はキャンセルの画面が出て どちらを選んでも何度もエラーになり結局強制終了 という現象になっていました。 そこでシステムの復元をして無事?その現象は出なくなったのですが それからはPCの動作が重くなり、時々フリーズするようになりました。 で、タスクマネージャを見てみるとIEXPLORE.exe 16.508K とが複数あることに気がつきました。 これは正常なのでしょうか? 多い時は5~6個表示されています。 何か対処方法等あれば教えてください

  • フォームを閉じないようにする VB6 SP6

    VB6 でプログラムを作成中です。 プログラムを実行して、フォームが立ち上がった所で右上の×を押し、画面を閉じようとします。 そこで以下のコードで、もし×が押されたらvbYesNoメッセージボックスを表示させ、もし「いいえ」が押されたらフォームを閉じないようにし、実行画面を維持したいのです。 しかし、Exit Sub ですとプログラムが終了してしまい、困っています。宜しくお願い致します。 Private Sub Form_Unload(Cancel As Integer) 'フォームを閉じる Dim last As String last = MsgBox(" プログラムを終了させますか?", vbYesNo, "終了確認1") If (last = vbYes) Then Dim last2 As String last2 = MsgBox(" 本当にプログラムを終了させますか?", vbYesNo, "終了確認2") If (last2 = vbNo) Then Exit Sub End If End If If (last = vbNo) Then Exit Sub End If End Sub

  • BackupExec10.0dのWindowsServer2003SP1へのインストールエラー

    BackupExec10.0dをWindowsServer2003SP1にインストールして、正常に終了したのですが、再起動すると、 『システムスタートアップ中に少なくても1つのサービスまたはドライバにエラーが発生しました。イベントビューアのログを参照して下さい』というメッセージが出ます。 BackupExecをアンインストールするとメッセージは出ないため、原因はBackupExecが使用する何かのサービスだと思うのですが、どなたか同じ現象になったかたおられませんか。もしくは、解決策が分かる方助けてください。 よろしくお願いします。

  • VB6.0で実行の度に異なるエラー

    VB6.0,Windows2000で作成したプログラムについてなのですが,立ち上げなおして実行する度に「実行時エラー'6' オーバーフローしました」「インデックスが有効範囲にありません」等のエラーが出て実行できない場合と,正常に実行できる場合があります. (実行の度に実際に異なるエラーが発生している訳ではないと思います) このような現象は何が原因だと考えられるのでしょうか. ご存知の方ご教授ください.

  • VBがデバッグ時落ちてしまう

    VC6.0でDLLを作成し、VB6.0で呼び出すプログラムを作成しています。 DLLの内容はWindowハンドルを引数にしてそのハンドルを持つWindow上にListboxを作成するというようなものです。(もともとC言語用のDLLだったものをVBで使いまわしています) このプログラムをデバッグ実行し、デバッガ上で停止[実行->終了]とすると、VB6.exeがアプリケーションエラーで落ちてしまいます。(DLLの関数を呼ばない限り大丈夫です) デバッグ実行でも普通に終了(アプリケーションでの終了)であれば正常に終了してくれます。 このままですと、実行時エラーで止まる度にVB6.exeが落ちてしまい非常に不便です。 このような現象で困った方いませんか? 解決策がありましたら教えてください。

専門家に質問してみよう