サイトについて      連絡先   検索

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

はじめに

Excel VBA のエラー 91 「オブジェクト変数または With ブロック変数が設定されていません。」の対処法を紹介します。

Object 型の代入に Set を付けないと発生します。

インスタンス化されていない Object 型を操作しようとしても発生します。

解決する

Set を付ける

Worksheet や Range などの Object 型の代入に Set を付けないと発生します。

Dim r As Range

r = Range("A1")     ' エラー
Set r = Range("A1") ' 正常

インスタンス化する

インスタンス化されていないときにも発生します。

Dim r As Range
Dim s As String

s = r.Value ' エラー、r は Nothing の状態

Set r = Range("A1")
s = r.Value ' 正常

Set を付け忘れていないか確認したり、インスタンス化されているかデバッグすると原因がわかります。

関連ページ