エラー内容
VBAコンパイル時に、「修正候補: 区切り記号 または)」と表示される。
原因と解決方法
4つの原因と解決方法が考えられます。
原因1. )が足りない
解説
右カッコ(閉じるカッコ)が足りないことが原因です。
サンプルソースでは、Msgboxの右カッコがありません。最後にある右カッコはLeft関数のカッコです。
1 2 3 4 5 6 7 |
Sub ErrSample12_01() MsgBox(Left(""えくとしょ"", 2) '← Msgboxの右カッコがない End Sub |
()が入れ子になっている時にやりがちなミスです。
最後にあるカッコはLeft関数の右カッコです。
解決方法
左カッコに対応する右カッコを追加します。
1 2 3 4 5 6 7 |
Sub ErrSample12_01() MsgBox (Left(""えくとしょ"", 2)) '← Msgboxの右カッコを追加 End Sub |
原因2. 区切り記号が正しくない
解説
区切り記号(カンマやセミコロン)が正しくないことが原因です。
サンプルソースでは、区切り文字がセミコロン(;)になっているのが原因です。
1 2 3 4 5 6 7 |
Sub ErrSample12_02() MsgBox (Left(""えくとしょ""; 2)) '← 区切り文字がセミコロンになっている End Sub |
解決方法
区切り記号を正しい文字に修正します。
サンプルソースの場合、Left関数なので、区切り文字をカンマ(,)に修正します。
1 2 3 4 5 6 7 |
Sub ErrSample12_02() MsgBox (Left(""えくとしょ"", 2)) '← 区切り文字をカンマに修正 End Sub |
原因3. サブルーチンやファンクションで右カッコがない
解説
サブルーチン(Sub)やファンクション(Function)の引数定義後に、右カッコがないのが原因です。
1 2 3 4 5 |
Sub ErrSample12_03(ByVal i As Long End Sub |
解決方法
サブルーチン(Sub)やファンクション(Function)の引数定義の最後に、右カッコを追加します。
1 2 3 4 5 |
Sub ErrSample12_03(ByVal i As Long) End Sub |
原因4. 文字列結合がうまくいってない
解説
&の左右に半角スペースがないため、文字列の結合ができてないのが原因です。
サンプルソースだと、変数titleと&がくっついています。
1 2 3 4 5 6 7 8 9 |
Sub ErrSample12_04() Dim title As String title = ""えく"" MsgBox (title& ""としょ"") '変数titleと&がくっついてる End Sub |
解決方法
&の左右に半角スペースを入れます。
サンプルソースの場合、&の左に半角スペースを入れます。
1 2 3 4 5 6 7 8 9 |
Sub ErrSample12_04() Dim title As String title = ""えく"" MsgBox (title & ""としょ"") '← &の左に半角スペースを入れる End Sub |