- ベストアンサー
エラー文を配列で?
エラーコーディングをしています。 今の作っているエラー関数だと、ひとつのエラー番号とひとつのエラー文しか取れていません。 複数取れる方法はありますか? 配列で取れるなんてことはあるんでしょうか??
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問の内容から、「エラーのログをとって、その次から実行する」だと解釈しました。 これでいかがでしょうか? Private Sub Test() Dim i&, lngCnt&, lngErr() As Long, strErr() As String ClearErr lngErr, strErr On Error GoTo Error 'ここにコーディング 'エラーの表示例(ログならここでファイルへ出力など) lngCnt = UBound(lngErr) For i = 1 To lngCnt Debug.Print strErr(i) & " (" & CStr(lngErr(i)) & ")" Next Exit Sub Error: AddErr lngErr, strErr Resume Next End Sub Private Sub ClearErr(ByRef lngErr() As Long, ByRef strErr() As String) ReDim lngErr(0), strErr(0) End Sub Private Sub AddErr(ByRef lngErr() As Long, ByRef strErr() As String) Dim lngCnt& lngCnt = UBound(lngErr) + 1 ReDim Preserve lngErr(lngCnt), strErr(lngCnt) lngErr(lngCnt) = Err.Number strErr(lngCnt) = Err.Description End Sub lngErr(0) と strErr(0) は使いません。使うようにしてもいいですが、面倒だったので、、、(すみません)
その他の回答 (3)
- tamanegi_majin
- ベストアンサー率32% (16/49)
恐らくは『関数に配列を渡したい』という事だと思うのですが違っていたら無視してください。 (一つ以上のエラー番号と一つ以上のエラー文を渡したい) VBでは基本的に参照渡しのはずですから、配列の先頭を参照で渡せば配列を参照できるのではないかと。 (但し、要素数も渡してやる必要がありそうですが。)
- PAPA0427
- ベストアンサー率22% (559/2488)
エラートラップは、基本的に発生したエラーに対して処理を1つづつ決めて処理します。 複数のエラーを取ってどうするんですか?複数のエラー処理というのは聞いた事がありませんが? エラーの履歴ということであれば、その都度、グローバル変数か何かに保存するしかないでしょう。 VBであれば「Err.Description」でエラーの内容が取れますが、中身はエラーごとに変わってきます。 ご質問の意味を取り違えていたら、ごめんなさい。
- rara_sun
- ベストアンサー率50% (271/539)
プログラミング言語は何を使用しているか書くと 具体的な回答がえられると思いますよ。
補足
すみません。 急いでいるので、あわてて書き込んでしまいました。 言語はVBを使っています。
補足
エラー内容をログファイルに書き出していきたいので、複数のエラー処理をするわけではないです。 質問の内容としては、同じところで複数のエラーが出た場合、エラー内容を配列に入れて、 それをログにはき出す・・・というものです。 言葉が足りなくて申し訳ありません。 でもヒントになりそうです。