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

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 を付け忘れていないか確認したり、インスタンス化されているかデバッグすると原因がわかります。

  • 目次
    • 解決する