エラー内容
VBAコンパイル時に、「引数は省略できません。」と表示される。
原因と解決方法
3つの原因と、その解決方法が考えられます。
原因1. 引数の数が足りない
解説
プロシージャに渡す引数が足りていないのが原因です。
1 2 3 4 5 6 7 |
Sub ErrSample27_01() MsgBox Mid("えくとしょ") End Sub |
解決方法
必要な引数を追加します。
サンプルソースのMidの場合は、「取り出すスタート位置」が必須の引数なので追加します。
1 2 3 4 5 6 7 |
Sub ErrSample27_01() MsgBox Mid("えくとしょ", 3) End Sub |
原因2. 引数が指定されていない
解説
プロシージャに渡す引数を記述していないのが原因です。
1 2 3 4 5 6 7 |
Sub ErrSample27_02() MsgBox End Sub |
解決方法
必要な引数を追加します。
サンプルソースのMsgBoxの場合は、「Prompt(メッセージ内容)」が必須の引数なので追加します。
1 2 3 4 5 6 7 |
Sub ErrSample27_02() MsgBox "えくとしょ" End Sub |
原因3. 自作関数の引数定義がまちがっている
解説
自作関数の引数定義が間違っていると、呼び出し側でエラーが発生します。
他の関数をコピーして自作関数を作った場合に、不要な引数が残ったままになりがちです・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub ErrSample27_03() MsgBox ReturnKasan(1, 2) End Sub Function ReturnKasan(a As Long, b As Long, c As Long) As Long ReturnKasan = a + b End Function |
解決方法
不要な引数を、引数定義から削除します。
サンプルソースでは、引数cは使用していないので削除します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub ErrSample27_03() MsgBox ReturnKasan(1, 2) End Sub Function ReturnKasan(a As Long, b As Long) As Long ReturnKasan = a + b End Function |