アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2010の事でお聞きします。
モジュールに下記のコード
Public Sub File_Open()
FileSystem.FileOpen(1, "c:\Test.txt",OpenMode.Random, , , Len(Dum))
End Sub

あるクラスから
call File_Open
と呼び出したらクラスには戻らずフォームに戻ってしまいます。
モジュールにこの様なコードはかけないのでしょうか?

質問者からの補足コメント

  • Form_Loadからこのクラスを呼び出し、クラスではファイルがあればデータを読込戻る
    なければ作成して戻る。そしてそのデータを表示させる。こんな感じです。
    CallするコードにStopを入れステップさせオープンさせるとEnd Subは通らず
    Form_Paintに戻ります。Paintではフォームに線描写しています。
    実はファイルは作成されています。Callの後でData書込処理をしていますが
    Callの後にStopを入れ実行するとPaintが実行されフォームが表示されます。
    そのためデータは書き込まれていません。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/07/16 06:51

A 回答 (2件)

それで見当つきました。



FileSystem.FileOpenが失敗した場合の処理を追加してください。
(Try〜Catchで例外を捕まえる)

おそらく、失敗しています。

○ファイル操作関連の処理は、他の処理に比べると「失敗」しやすいです。
ですから、失敗したときの対策を入れておくようにしましょう。
最低限、ファイルオープン時くらいは、正常にオープンできているかを調べましょう。

○ 詳しくは知らないのですが
Visual Studioでデバッグ実行中に、 Form.Loadイベントハンドラ で例外が発生しても、例外のメッセージが出ないで、そのままForm.Loadイベントハンドラが終了し、次の処理へと移行するようです。
実稼動環境で例外になったり、Loadで設定したはずの項目が初期値のままだったり、というのを何度か経験しています。

○最近のWindowsでは、Cドライブ直下にファイルを置けないようにしています。
    • good
    • 0
この回答へのお礼

回答有難うございます
今VB6で作ったプログラムをVB2010に作り変えています。
VB2010は初心者なので、一つ一つTestプログラムを作って
VB2010を猛勉強中です。
VB6の利用できるところは利用し、できないところを
VB2010の仕様で作る作業をしています。
ドライブをC:ではなく外付けのハードディスクG:に
かえたところ、考えていた結果がでました。
Cドライブ直下にファイルを置けないんですね。
初心者というのはこんなものです。
お手数をおかけしました。

お礼日時:2015/07/16 10:13

> クラスには戻らずフォームに戻ってしまいます。



とは、具体的にどのような状況なのですか?


例外等が発生しない限り、 Call は呼び出したところへ戻ってきます。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!