[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA エラー行数の取得』(Hoy)
もしあれば教えていただきたいのですが、 VBAでエラーが発生しデバックすると黄色くなってますが、 その行番号を取得し、書き込む事は可能でしょうか? 説明が下手でスイマセン、分かりますでしょうか?
内容が分かりません。 目的を書いていただけると分かりやすくなると思いますよ。
上の説明にしても行番号とありますが、何の行番号でしょうか? VBAのコードの行番号ですか?コードに行番号はありません。
>その行番号を取得し、書き込む事は可能でしょうか? どこに書き込むのでしょうか? (やっちん)
(やっちん)さんありがとうございます。 目的は、毎日同じ時間にエクセルのマクロを 実行させているのですが、エラーが発生した際、 エクセルを終了させ、新規テキストファイルを作り、 ファイル名に日時や異常終了等のコメントを入れています。 (いくつかのファイルを5分ごとに実行させているため) なので朝見て、未処理なことは分かるのですが、どこでつまづいたかを 知りたいのです。現在は一行ごとに確認しているのですが、 もしコードの何行目でエラー処理に回ったかをファイル名に残せれば、 修正する時間が短くなると思い。質問しました。
行番号ではなく、何行目・何桁を表示するものがありますが、 その何行目かです・・・。スイマセン (Hoy)
私が同じことをするとしたらログを書き出すか、どこまで 処理が進んでいるかを変数に格納してエラー処理で出力す ることぐらいでしょうか。
後者のサンプルです。 Sub Test() Dim ShoriCD As Long Dim i As Long On Error GoTo ERR_SHORI
ShoriCD = 1 '処理1
ShoriCD = 2 For i = 1 To 100 '処理2 Next i
ShoriCD = 3 '処理3 Exit Sub ERR_SHORI: Select Case ShoriCD Case 2 MsgBox "処理CD:" & ShoriCD & ",i=" & i Case Else MsgBox "処理CD:" & ShoriCD End Select End Sub (やっちん)
(やっちん)さん、ありがとうございます。 やはりどこかに番号をつけるということですね。 VBAのツールバーのところに行と桁が表示されているので、 それなんかを取得できないかな?とおもったのですが・・・ 上記の方法でやってみます。 ありがとうございました。 (Hoy)
> VBAのツールバーのところに行と桁が表示されているので 私は見たことないのですが、どうやったら表示されるのでしょうか? よかったら教えてください。 (やっちん)
どうやるというか、 編集している時に、カーソルのある位置が何行目で何桁目かが 上のツールバーの所に表示されているのですが・・・ (Hoy)
使われているコードがどのようなものか不明ですが、 エラーが出そうな場所の各上の行に Application.VBE.CodePanes(1).GetSelection m, n, x, y を入れておき エラー時の処理を上記のmを変数として使えば可能かも・・・? Dim m As Long Dim n As Long Dim x As Long Dim y As Long で変数を定義しておくことをお忘れなく
(川野鮎太郎)
面白そうだったので実験してみました。 結果は、実行前のカーソル位置を返してきました。 エラーをトラップするとカーソル位置がエラー箇所に変更されないのでしょうがないですね。 (やっちん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.