質問なのですが、よろしくお願い致します。
ファイルに空白行があった場合、任意に例外を発生させることをしているのですが、
(例外処理内容:ファイルにログを出力する)
例外が2回キャッチされているようで、2回目にファイル(ログファイル)は既に開かれています。というエラーが出ますが、以下のソースでは、呼出元と呼び出されたメソッドともに例外を処理してしまうのでしょうか?
また、どう改善したらいいでしょうか?
ご教授よろしくお願い致します。
呼出元
public Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
Dim cls As New testClass
cls.timer1()
Catch e as Exception
'ログファイル出力
End Try
End Sub
呼び出されるメソッド
Public Sub Timer1()
try
FileOpen(1,"ファイルパス",OpenMode.Input)
if Trim(LineInput(1)) = "" Then
FileClose(1)
Throw New Exception
End If
Catch e as Exception
'ログファイル出力
End Try
End Sub
No.1ベストアンサー
- 回答日時:
Timer1メソッドのtry節でFileOpenを使ってますがこれをFileCloseしてませんよね
2回目にTimer1メソッドにきたとき 空行の条件が成り立っていなければ
ファイルは開いたままですよ
Timer1メソッドに引数を設定して ファイル番号を渡すようにします
この引数が0ならFileOpenを実行 0以外ならFileOpenは実行しないといった具合にして見ましょう
Sub Timer1(ByRef FF as Integer )
try
' 引数が0なら ファイルを開く
if FF = 0 then
FF = FreeFile
FileOpen( FF, "ファイルパス", File.Open)
end if
' 空行かのチェック
if Trim(LineInput(FF) ) = "" then
FileClose(FF)
FF = 0
Throw NEW Exception
end if
catch ex as Exception
end try
End Sub
といった具合でしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
現在のブックを閉じないで、マ...
-
IEの通知バー制御ができなくなった
-
Excel VBA 定義されたプロージ...
-
VBA 複数条件の分岐処理の上手...
-
VBAで各列の"+"と"o"の合計数を...
-
ExcelVBA シート名を複数セルか...
-
VB.net(VB)で、フォームにExcel...
-
ユーザーフォームに別シートか...
-
VBA listBoxから
-
エクセルのマクロについて教え...
-
【VBA】マクロの入ったファイル...
-
VBA初心者 Ctrl+での操作、ボタ...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
Excel-VBAのmsgBox()の不思議
-
ExcelのVBAコードについて教え...
-
エクセルのマクロについて教え...
-
エクセルVBAにて =A1=B1とすれ...
-
ExcelのVBAコードについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコードを教えてください
-
【ExcelVBA】インデックスが有...
-
ExcelVBA シート名を複数セルか...
-
エクセルvbaについて
-
エクセルのマクロについて教え...
-
【VBA】マクロの入ったファイル...
-
VBA UserFormからの転記で
-
エクセルVBAの配列について
-
Excelで「Ctrl+c」、「Ctrl+v...
-
VBAコードについて教えてくださ...
-
ExcelのVBAコードについて教え...
-
Excel マクロについての相談
-
VBAで質問があります
-
VBAコードについて
-
【ExcelVBA】VBA実行でダイアロ...
-
Excel関数またはVBAでの質問に...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
Outlookの「受信日時」「件名」...
おすすめ情報