ExcelマクロVBA技術解説 | 実行時にトラップ可能なエラー番号一覧 | Excelマクロの問題点と解決策、エクセルVBAの技術的解説



最終更新日:2016-07-02

実行時にトラップ可能なエラー番号一覧


マクロVBA実行時に発生するエラーのうち、以下の表にあるエラーは、

トラップできるエラーになります。

On ErrorステートメントおよびErrオブジェクトのNumber ロパティを使用して、エラーへの対処を行うことができます。


Sub sample()
  Dim i As Long
  On Error Resume Next
  i = "A"
  If Err.Number <> 0 Then
    Debug.Print Err.Number
    Debug.Print Err.Description
  End If
End Sub


上記の結果は、イミディエイトウインドウに

13
型が一致しません。


と表示されます。


トラップ可能なエラー一覧

番号 メッセージ 対策
3 Return に対応する GoSub がありません。 Returnステートメントに対応するGoSubステートメントを確認
5 プロシージャの呼び出し、または引数が不正です。 引数が許容値の範囲か確認
6 オーバーフローしました。 代入、計算、データ型変換の結果が、その変数の許容範囲か確認
7 メモリが足りません。 不要なアプリケーション、ドキュメント等を閉じます。
モジュールまたはプロシージャを小さく分割します。
仮想メモリを増やす。
メモリ常駐プログラムを削除します。
Public 変数を減らします。
9 インデックスが有効範囲にありません。 存在しない配列要素を参照していないか確認
10 この配列は固定されているか、または一時的にロックされています。 再定義できない配列の次元を再定義しています。
11 0 で除算しました。 0で割り算しています
13 型が一致しません。 互換性のないデータ型の間で代入を行っています。
14 文字列領域が不足しています。 文字列の操作の式で、一時的な文字列が必要な式の場合に、文字列が長すぎます。
16 式が複雑すぎます。 浮動小数点式でネストされている式の数が多すぎます。
17 要求された操作は実行できません。 現在実行中のコードをプログラムで変更しようとしています。
18 ユーザーによる割り込みが発生しました。 ユーザーが割り込みキーを押しました。
20 エラーが発生していないときに Resume を実行することはできません。 Resumeステートメントが、アクティブなエラー処理ルーチン以外で実行されています。
28 スタック領域が不足しています。 再帰プロシージャが正しく終了していることを確認
35 Sub、Function、または Propertyが定義されていません。 プロシージャの名前が間違っています。
47 コード リソースまたは DLL のクライアント アプリケーションが多すぎます。
48 コード リソースまたは DLL 読み込み時のエラーです。
49 コード リソースまたは DLL が正しく呼び出せません。
51 内部エラーです。
52 ファイル名または番号が不正です。 ファイル番号のファイルが正しくOpenされた状態かを確認
53 ファイルが見つかりません。 存在しないファイルを参照しています。
54 ファイル モードが不正です。 ファイルを開いたときのモードに対応していないステートメントを使用していまする
55 ファイルは既に開かれています。 閉じられていないファイルをOpenしています。
57 デバイス I/O エラーです。 デバイスが正しく動作しているかを確認
58 既に同名のファイルが存在しています。 既に存在するファイル名と同じ名前を指定しています。
59 レコード長が一致しません。 Getステートメントまたは Putステートメントの指定が、でOpenステートメントで指定された長さと異なります。
61 ディスクの空き容量が不足しています。
62 ファイルにこれ以上データがありません。 ファイルの末尾以降を読み込もうとしています。
63 レコード番号が不正です。 レコード番号が 0 以下です。
67 ファイルが多すぎます。 同時に開くことができるディスク ファイルの数には限度があります。
68 デバイスが準備されていません。 デバイスが正しく動作しているかを確認
70 書き込みできません。 書き込み保護のディスクに書き込もうとしているか、またはロックされているファイルにアクセスしようとしています。
71 ディスクが準備されていません。 指定されたドライブにディスクがありません。
74 ディスク名は変更できません。 Nameステートメントを使用して、ファイルを別のドライブに移動しようとしています。
75 パス名が無効です。 ファイル指定の形式が間違っています。
既存の読み取り専用ファイルと同じ名前でファイルを保存しようとしています。
読み取り専用ファイルをシーケンシャルOutputまたはAppend モードで開こうとしています。
76 パスが見つかりません。 指定したパスが存在するか確認。
91 オブジェクト変数または With ブロック変数が設定されていません。 有効なオブジェクトを参照していないオブジェクト変数を使用しようとしています。
Nothing に設定されているオブジェクト変数を使用しようとしました。
92 For ループが初期化されていません。 For...Nextループの途中にジャンプしていませんか。
93 パターン文字列が不正です。 Like 演算子で指定されているパターン文字列が無効です。
94 Null の使い方が不正です。 Null 値のバリアント型変数の値を取得しようとしています。
97 オブジェクトが定義クラスのインスタンスではない場合、このオブジェクトに関するフレンド関数は呼び出せません。
98 プロパティまたはメソッドの呼び出しの場合には、引数または戻り値としてプライベート オブジェクトへの参照を含めることはできません。
298 システムリソースまたは DLL をロードできません。
320 キャラクタ デバイスは使えません。
321 不正なファイル形式です。
322 必要なテンポラリ ファイルを作成できません。
325 リソース ファイルの形式が不正です。
327 データ値が見つかりません。
328 不正なパラメータです。配列に書き込めません。
335 システム レジストリにアクセスできません。
336 コンポーネントが正しく登録されていません。
337 コンポーネントが見つかりません。
338 コンポーネントが正常に実行されませんでした。
360 このオブジェクトは既にロードされています。
361 このオブジェクトは、ロードまたはアンロードすることはできません。
363 指定されたコントロールが見つかりません。
364 既にアンロードされています。
365 現在アンロードできません。
368 ファイルは古い形式で作成されています。このプログラムには新しい形式のファイルが必要です。
371 指定されたオブジェクトは、Show メソッドのオーナー フォームとして使用できません。
380 プロパティの値が不正です。 不適切な値がプロパティに割り当てられています。
381 プロパティ配列のインデックスが不正です。
382 プロパティは、実行時には設定できません。
383 プロパティは値の取得のみ可能です。 実行時に値の取得のみ可能なプロパティへ値を設定しようとしています。
385 このプロパティには配列のインデックスが必要です。
387 プロパティは値を設定できません。 実行時には値の設定ができないプロパティです。
393 プロパティは実行時に値の取得はできません。 実行時には値の取得ができないプロパティです。
394 プロパティは設定のみ可能です。 実行時には値の取得ができないプロパティです。
400 既にフォームは表示されています。モーダルにできません。 既にフォーム表示されています。
402 一番手前 (前面) のモーダル フォームを先に閉じてください。 複数のフォームが表示されている場合は、一番手前のフォームから閉じて下さい。
419 オブジェクトを利用できません。
422 プロパティが見つかりません。 プロパティ名が正しいかどうかを確認
423 プロパティまたはメソッドが見つかりません。 名前が間違っていないか確認
424 オブジェクトが必要です。 オブジェクト修飾子が指定されていません。
425 オブジェクトの使い方が不正です 適切な適用範囲外でオブジェクトを使用しようとしています。
429 コンポーネントはオブジェクトを作成できません。
430 クラスはオートメーションをサポートしていません。
432 オートメーションの操作中にファイル名またはクラス名を見つけられませんでした。
438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 プロパティ名またはメソッド名が正しいかどうかを確認
440 オートメーション エラーです。 オートメーション オブジェクトのアクセスが不正です。
442 リモート プロセス用のタイプ ライブラリまたはオブジェクト ライブラリへの参照は失われました。
443 オートメーション オブジェクトには既定値がありません。
445 オブジェクトはこの動作をサポートしていません。 プロパティ名またはメソッド名が正しいかどうかを確認
446 オブジェクトは名前付き引数をサポートしていません。 名前付き引数をサポートしていないメソッドです。
447 オブジェクトは現在の国別情報の設定をサポートしていません。
448 名前付き引数が見つかりません。 名前付き引数の名前(名前付き引数:=)間違っています。、
449 引数は省略できません。または不正なプロパティを指定しています。 引数の数が一致しません。
450 引数の数が一致していません。または不正なプロパティを指定しています。 引数の数が一致しません。
451 このオブジェクトがコレクションではありません。
452 序数が不正です。
453 関数は指定されたコード リソース には定義されていません。
454 コード リソースが見つかりません。
455 コード リソースのロック エラー
457 このキーは既にこのコレクションの要素に割り当てられています。
458 Visual Basic でサポートされていないオートメーションが変数で使用されています。
459 このコンポーネントでは、イベントはサポートされていません。
460 クリップボードのデータ形式が不正です。
461 メソッドまたはデータ メンバが見つかりません。 オブジェクトまたはメンバの名前が間違っています。
462 リモート サーバーがないか、使用できる状態ではありません。
463 ローカル マシンにクラスが登録されていません。
480 AutoRedraw イメージを作成できません。
481 ピクチャが不正です。
482 プリンタ エラーです。
483 プリンタ ドライバは指定されたプロパティをサポートしていません。
484 システムからプリンタ情報を受けるときに問題が発生しました。プリンタが正しく設定されているかを確かめてください。
485 ピクチャの形式が不正です。
486 フォームのイメージをこのプリンターで印刷することはできません。
520 クリップボードを空にできません。 別のアプリケーションで Clipboard が使用されており、解放されていません。
521 クリップボードを開けません。 別のアプリケーションで Clipboard が使用されており、解放されていません。
735 テンポラリ ファイルに保存できません。
744 検索文字列が見つかりませんでした。 指定された文字列が見つかりません。
746 置換後の文字列が長すぎます。 許容されている長さを超えた置換文字列が指定されています。
31001 メモリが不足しています。
31004 オブジェクトがありません。
31018 クラスが設定されていません。
31027 オブジェクトをアクティブにできません。
31032 埋め込みオブジェクトが作成できません。
31036 ファイルへの書き込み中にエラーが発生しました。
31037 ファイルの読み込み中にエラーが発生しました。


良く発生しそうなエラーのみ簡単な対処を記載しました。

同じエラーメッセージであっても、発生原因は多岐に及ぶ事が多いものです。

基本にのっとったコードを書くようにすることで、エラーは格段に減ります。

よくある代表的なエラーについては、以下で初心者向け解説をしています。
よくあるVBA実行時エラーの解説と対応




同じテーマ「ExcelマクロVBA技術解説」の記事

論理積(And)論理和(Or)と真(True)偽(False)の判定
VBAにおける括弧()の使い方
Rangeオブジェクト.Valueの省略について
ユーザー操作を制限する(Locked,Protect,ScrollArea)
プログラミングの基本〜ロジックの組み立て
シートに数式を設定する時のセル参照の指定方法
標準モジュールとシートモジュールの違い

新着記事 ・・・新着記事一覧を見る

Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)
ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)
フォルダの一覧取得・作成・削除(Folder)|Google Apps Script入門(1月24日)
フォルダとファイルを扱う(DriveApp)|Google Apps Script入門(1月24日)
スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.変数とデータ型(Dim)|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • 実行時にトラップ可能なエラー番号一覧

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP