エラー内容
VBAコンパイル時に、「オブジェクトが必要です。」と表示される。
原因と解決方法
次の原因と解決方法が考えられます。
原因1. オブジェクト変数でないのに、オブジェクトを格納している
解説
Long型やString型などの普通の変数に、WorkSheetなどオブジェクトを格納しようとすると発生します。
1 2 3 4 5 6 7 8 9 |
Sub ErrSample17_01() Dim ws As Long Set ws = ActiveSheet 'NG : Long型にActiveSheetを格納しようとしている End Sub |
解決方法
格納する変数を、対応するオブジェクト変数に修正します。
サンプルソースでは、ActiveSheetを格納したいので、WorkSheet型に修正すればOKです。
1 2 3 4 5 6 7 8 9 |
Sub ErrSample17_02() Dim ws As Worksheet 'OK : 変数の型を修正 Set ws = ActiveSheet End Sub |
オブジェクト変数に格納する時は、Setを使うのも忘れずに
エクセルVBAでよく使うオブジェクト変数
- Workbookオブジェクト
- Worksheetオブジェクト
- Rangeオブジェクト
とりあえずは、この3つは基本の型なので覚えておきましょう!