VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/10/02(Mon) 18:00
投稿者こう
Eメール
URL
タイトル画面呼び出しで実行時エラー「438」が発生

画面A、画面B、画面Cの3つの画面があります。

画面Aからボタン押下により、画面Bと画面Cを呼び出します。

画面Bは、呼び出し時に処理を実行し、処理結果により画面B
を開くか、開かないか判断しています。
画面Cは、ボタンが押されたら画面を開いています。

たぶん、私の作りが悪いと思うのですが、
画面Aからボタンを押下し、画面Bを開き、また、画面Aに戻った
場合、どうしても、画面AのFrom_Loadが動いてしまいます。
画面AのFrom_Loadが呼ばれないように「Unload」から「Hide」に
変更しました。
変更後は、上手くいったのですが、今後は、画面Cを開くと、以下の
エラーが表示され画面が終了してしまいます。

実行時エラー '438'
オブジェクトは、このプロパティまたは、メソッドをサポートしていません。
が表示されます。
「OK」を押すと終了する。

デバッガで動かしてみると問題なく動くのですが、何がいけないのでしょうか。
どのようにすれば正しく動くのでしょうか。

環境は、
Windows2000
VB6.0

-------------------------------------------------------------
画面A
Private Sub Command1_Click()
  Dim Result         As Integer

    Result = From_B.PANEL_INIT
    If Result <> NORMAL_RETURN Then
        Unload From_B
        Exit Sub
    End If
    From_B.Show
    From_B.Data_Delivery data1,data2,data3
    'Unload Me
    Hide
End Sub

Private Sub Command2_Click()
    'From_C.Show
    'Unload Me
    From_C.Show 1, From_A
End Sub

-------------------------------------------------------------
画面B
Friend Function PANEL_INIT() As Integer
   On Error Resume Next

    処理
    エラーが発生したら
        GoTo EXIT_ERR

    PANEL_INIT = NORMAL_RETURN

    Exit Function

'エラー処理
EXIT_ERR:
    PANEL_INIT = UNUSUAL_RETURN

   On Error GoTo 0

End Function

Private Sub Command1_Click()
    From_A.Show
    Unload Me
End Sub

-------------------------------------------------------------
画面C
Private Sub Command1_Click()
    'From_A.Show
    Unload Me
End Sub

Private Sub Command2_Click()
    処理A
End Sub

Private Sub Command3_Click()
    処理B
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -