エラー内容
VBAコンパイル時に、「プロパティの使い方が不正です。」と表示される。
原因と解決方法
4つの原因と、その解決方法が考えられます。
原因1. = がない
解説
プロパティに値をセットする時に、=がない事が原因です。
サンプルソースでは、Range(“A2”)に値をセットしようとしているのに、Valueの後に=がありません。
1 2 3 4 5 6 7 |
Sub ErrSample24_01() Range("A2").Value "えくとしょ" '= がない End Sub |
解決方法
プロパティの後ろに、=を追加します。
1 2 3 4 5 6 7 |
Sub ErrSample24_01() Range("A2").Value = "えくとしょ" '= を追加 End Sub |
原因2. 引数の()がない
解説
Cellsなどで、引数の()がない事が原因です。
1 2 3 4 5 6 7 |
Sub ErrSample24_02() Cells 2, 1 = "えくとしょ" '引数の()がない End Sub |
解決方法
引数を()で囲んであげます。
1 2 3 4 5 6 7 |
Sub ErrSample24_02() Cells(2, 1) = "えくとしょ" '引数を()で囲む End Sub |
原因3. プロパティを何にも使ってない
解説
プロパティを記述しているけど、何にも使っていないのが原因です。
「コードに書いてあるプロパティをどうしたいの?」ってことです。
1 2 3 4 5 6 7 |
Sub ErrSample24_03() ThisWorkbook.Name 'プロパティを何にも使ってない End Sub |
解決方法
取得したプロパティに対して、処理を追加します。
たとえば「MsgBoxでプロパティの値を表示」したり、「プロパティに値をセット」「変数に格納する」などがあります。
サンプルソースはMsgBoxで値を表示するように修正しました。
1 2 3 4 5 6 7 |
Sub ErrSample24_03() MsgBox ThisWorkbook.Name 'MsgBoxでプロパティの値を表示 End Sub |
原因4. コレクションに値をセットしている
解説
SheetsやHyperlinksなどのコレクションに値をセットしているのが原因です。
サンプルソースでは、sheetsコレクション(シートの集まり)に対して、シート名をセットしているのが原因となってます。
1 2 3 4 5 6 7 |
Sub ErrSample24_04() ThisWorkbook.Sheets = "生徒一覧" 'コレクションに対して、値をセットしている End Sub |
解決方法
正しいプロパティを指定し、処理を記述します。
サンプルソースの場合は、sheetsコレクションなので、対象のシートとNameプロパティを指定し、値をセットするように修正します。
1 2 3 4 5 6 7 |
Sub ErrSample24_04() ThisWorkbook.Sheets(1).Name = "生徒一覧" '1番目のシート名を「生徒一覧」に変更 End Sub |