実行時エラー5「プロシージャの呼び出し、または引数が不正です。」の原因・解決方法

エラー内容

VBA実行時に、実行時エラー5「プロシージャの呼び出し、または引数が不正です。」と表示される。

原因と解決方法

1つの原因と、その解決方法が考えられます。

原因1. 関数の引数が範囲外

解説

関数の引数には、「数値」という条件以外に「0以上」など範囲が決まっている引数もあります。

その決まった範囲外の値を引数で指定すると、このエラーが発生します。

 

サンプルソースでは、Left関数の第2引数にマイナスを指定しているのが原因です。

Left関数の第2引数は、「左から何文字切り取るか」を指定するので、0以上の数値しか指定できません。

 

解決方法

引数の値を、正しい範囲に修正します。
Left関数の場合は、第2引数を0以上の値に修正します。

 

今回は直打ちの数値だから簡単にバグを発見できますが、変数の値や、計算結果を引数に使用している時などは、発見しにくいです。

 

まとめ

よく使う関数で、引数に範囲条件があるものを紹介します。

関数 引数の条件
Left関数 第2引数Length:0以上
Right関数 第2引数Length:0以上
Mid関数 第2引数Start:1以上
第3引数Length:0以上
DateAdd関数 第1引数Interval:日付の単位を表す文字のみ
(「日付を表す文字一覧」を参照)
DateDiff関数 第1引数Interval:日付の単位を表す文字のみ
(「日付を表す文字一覧」を参照)

 

日付を表す文字一覧

yyyy
q 四半期
m
y 年間通算日
d
w 週日
ww
h
n
s

 

関連記事

VBAエラー原因・解決方法
成果を出す5つのポイント
VBAエラー原因・解決方法
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました