PR

【VBA】実行時エラー 91「オブジェクト変数または With ブロック変数が設定されていません。」の対処法

【VBA】実行時エラー 91「オブジェクト変数または With ブロック変数が設定されていません。」の対処法 VBA
この記事は約2分で読めます。
記事内に広告が含まれています。

今回はExcel VBAを実行した際に発生した「実行時エラー 91「オブジェクト変数または With ブロック変数が設定されていません。」の対象方について解説していきます。

オブジェクトとは

オブジェクトは「物」のことを指します。

VBAで「ブック」、「シート」、「セル」に対して操作する時にどのオブジェクトを指定するのか指定するための書き方です。

オブジェクトの対象
  • Application
  • Workbook
  • Worksheet
  • Range

例えばSheet1のRange(“A1”)に”テスト”と設定したい時、Sheet2を表示した状態で下記コードを実行するとSheet2のRange(“A1″)に”テスト”と設定されてしまいます。

別のシートに設定されないようにするためにどのシートに対して操作をするのかオブジェクトを指定します。

うめ
うめ

オブジェクトを指定しなくても問題ありませんが、どのオブジェクトを操作するのか指定するのをオススメします。

エラーの原因

オブジェクトについて理解した上でエラーを解説していきます。
エラーの原因は2つです。

エラーの原因
  1. オブジェクトに対してSetの付け忘れ
  2. SetしたオブジェクトがNothing

オブジェクトに対してSetの付け忘れ

先ほどのコードから「Set」を取り除くと実行時エラー91が発生します。

オブジェクトを代入する時はSetが必要です。

Setを付け忘れている場合は、Setを付けるだけでエラーが解消されるのでオブジェクト変数まわりを確認しましょう。

オブジェクトを代入する時は「Set」が必須!

Setしたオブジェクトに対してNothing

シートを指定する場合、存在しないものを指定することはできません。

まとめ

実行時エラー 91「オブジェクト変数または With ブロック変数が設定されていません。」の対処法について解説を行いました。

個人的にはSetの付け忘れが多いのかな…と思っています。

オブジェクト変数を指定する場合は気を付けるようにしましょう!

この記事が気に入ったら
いいね ! しよう

Twitter で
この記事を書いた人

便利なガジェットレビューやPCのトラブル解消記事を書いています。
単調な繰り返し作業が苦手なので、作業効率化の仕組みを記事にしています。
月間9万PVを突破しました!
商品レビューのご依頼は「お仕事の依頼について」をご確認ください。

うめをフォローする
VBA
タイトルとURLをコピーしました