あるあるエラー:シートをオブジェクト変数に入れる
シートをオブジェクト変数に入れようとしたら
このようなエラーになったことはありませんか?
このエラーが発生したコードは次です。
Dim sh As Worksheets
Set sh = Sheets("Sheet1")
オブジェクト変数shのデータ型が
このエラーの原因です。
といっても???
と思う人もいるかもしれません。
エラーにならないコードはこちら
Dim sh As Worksheet
Set sh = Sheets("Sheet1")
同じではありません。
WorksheetsとWorksheet、
「s」のありなしです。
Worksheetsは、プロパティで
Worksheetは、オブジェクトです。
調べてみるとすっきりします。
コードを入力していると
次の画像のように入力補助されます。
マークも同じなので
両者の違いがはっきりしないので
混同してしまうのかもしれません。
プロパティはデータ型には使えません。
補足として
次のコードでもエラーになります。
Dim sh As Sheets
Set sh = Sheets("Sheet1")
Sheetsもプロパティです。
「Sheet」というオブジェクトはないので、
Dim sh As Sheet
Set sh = Sheets("Sheet1")
のようにすると
次のようなコンパイルエラーになります。
ユーザ定義型は定義されていません。
文字的にはsの違いしかないですから
わかりにくいですよね。
| 固定リンク
この記事へのコメントは終了しました。

コメント