VBAでIEの操作をしている時に、「オブジェクトが必要です」というエラー(実行時エラー424)が出ることがあります。
持って回ったような表現でちょっとわかりにくいですが、操作しようとしているオブジェクトが存在しないという意味です。他のプログラミング言語でいうと、NullPointerExceptionです。
このエラーは、DocumentオブジェクトのgetElementByIDメソッドなどのDOM関連メソッドでオブジェクトの取得に失敗している場合にも発生します。
以下の例の場合、IDがexampleの要素が存在しない場合、実行時エラー424が発生します。getElementByIdメソッドは値の取得ができなかった場合はNullを返すので、valueプロパティへの代入時にエラーになるからです。
1 2 |
objIE.Document.getElementById("example").value = "値" 'IDがexampleの要素が存在しない場合、実行時エラー424が発生する |
IDが間違っている場合は、IDを正しい値に書き換えます。また必要に応じてIsNull関数などを使用して適切なエラー処理を行います。
1 2 3 |
If IsNull(objIE.Document.getElementById("example")) Then '適切なエラー処理を行う End If |