• ベストアンサー

エラー文を配列で?

 エラーコーディングをしています。  今の作っているエラー関数だと、ひとつのエラー番号とひとつのエラー文しか取れていません。  複数取れる方法はありますか?  配列で取れるなんてことはあるんでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • clavia
  • ベストアンサー率50% (5/10)
回答No.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)

回答No.3

恐らくは『関数に配列を渡したい』という事だと思うのですが違っていたら無視してください。 (一つ以上のエラー番号と一つ以上のエラー文を渡したい) VBでは基本的に参照渡しのはずですから、配列の先頭を参照で渡せば配列を参照できるのではないかと。 (但し、要素数も渡してやる必要がありそうですが。)

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.2

エラートラップは、基本的に発生したエラーに対して処理を1つづつ決めて処理します。 複数のエラーを取ってどうするんですか?複数のエラー処理というのは聞いた事がありませんが? エラーの履歴ということであれば、その都度、グローバル変数か何かに保存するしかないでしょう。 VBであれば「Err.Description」でエラーの内容が取れますが、中身はエラーごとに変わってきます。 ご質問の意味を取り違えていたら、ごめんなさい。

hema123
質問者

補足

 エラー内容をログファイルに書き出していきたいので、複数のエラー処理をするわけではないです。  質問の内容としては、同じところで複数のエラーが出た場合、エラー内容を配列に入れて、  それをログにはき出す・・・というものです。  言葉が足りなくて申し訳ありません。  でもヒントになりそうです。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

プログラミング言語は何を使用しているか書くと 具体的な回答がえられると思いますよ。

hema123
質問者

補足

 すみません。  急いでいるので、あわてて書き込んでしまいました。  言語はVBを使っています。

関連するQ&A