OfficeType

VBA~実行時エラー'91'オブジェクト変数またはWithブロック変数が設定されていません。~Excel

エラー名

実行時エラー'91'オブジェクト変数またはWithブロック変数が設定されていません。

image-01

原因

オブジェクト変数にオブジェクトを格納するときにSetをつけずに格納しようとするとエラーが発生します。下のエラーが出るコード1ではオブジェクト変数aにSetをつけずにSheet1を格納しようとしようとしているのでエラーになります。

オブジェクト変数にオブジェクトを格納せずにNothingのまま操作しようとすると発生します。下のエラーが出るコード2ではオブジェクト変数aになにも格納せずにシートの名前を変更しようとしているのでエラーが発生します。

エラーが出るコード1

Sub test1()

Dim a As Worksheet
a = Worksheets("Sheet1")

a.Name = "シート1"

End Sub

エラーが出るコード2

Sub test2()

Dim a As Worksheet

a.Name = "シート1"

End Sub

修正したコード

Sub test3()

Dim a As Worksheet
Set a = Worksheets("Sheet1")

a.Name = "シート1"

End Sub

image-02