マクロ作成時のデバッグ作業で、RangeオブジェクトのR1C1プロパティ設定時に、「エラー番号:1004」が発生したことがありました。
その時のバグ対応事例を紹介いたします。
1.エラーの原因とエラーへの対処
2.エラーコード_1004とは?
1.エラーの原因とエラーへの対処
RangeオブジェクトのR1C1プロパティ設定時にエラー番号:1004が生じた原因は、
私の場合、「IF関数の書式設定に不備があったこと」でした。
もう少し詳しく状況を説明します。
私が作成したマクロは、以下の動作を目的としていました。
●日本語を入力値、Excel_IF関数を出力値としてセルに設定する
その過程で、Excel_IF関数の判定文(第1引数)にRangeオブジェクトのR1C1プロパティを設定した際に、1004エラーが発生しました(図1)。
図1.Rangeオブジェクト.R1C1プロパティ設定時にエラーが発生した時のキャプチャ
2.エラーコード_1004とは?
私が1004エラーに遭遇した時、「1004エラーが起きるのはどういう時か?」が知りたかったので、実際に調べてみました。
結論から言うと、1004エラーは「その他のエラー」という扱いを受けていました。
参考サイト:①エクセルの神髄/実行時にトラップ可能なエラー番号一覧
②【VBA入門】「実行時エラー ‘1004’」のエラー原因と対処方法とは
①の参考サイトでは、「1004エラーは、Visual Basic for Applications で定義されたエラーに対応しない場合に表示されます。」記載されていました。
また、②の参考サイトでは、「「実行時エラー ‘1004’」エラーが起こる原因はたくさんある」と記載され、その中の4つに絞って対処例が紹介されていました。
二つの参考サイトを踏まえると、「エラー番号:1004だけでは具体的なエラーの原因はわからない」みたいです…