【VBAExcelマクロ】R1C1プロパティ設定時の1004エラー発生原因例

マクロ作成時のデバッグ作業で、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だけでは具体的なエラーの原因はわからない」みたいです…

 ↑目次に戻る