雑記帳スマートフォン用の表示で見るのんびり雑記帳2018-03-27VBAのIsObjectとVBSのIsObject【備忘録】ProgramVBAのソースをVBSに移植していて躓いたことがあったので、備忘録として残しておこうと思います。NothingIE操作にてあるページでもしあるボタンがあったらクリック、といったスクリプトを書いていました。ボタンがないのにクリックをしてしまうと、オブジェクトがない、とエラーが出てしまいますので、IF文でオブジェクト(DOM要素)があるかチェックして、あったらクリックをします。VBAでIsObjectでチェックすると、要素がないのにも関わらずTrueが返ってしまい、クリックする箇所で当然エラーが出ます。Nothingとしました。これで問題なく動作してました。Nothingだと、オブジェクトがない、とエラーが出ます。IsObjectにしてみると、VBAでは要素がなくてもTrueが返っていたのにVBSではFalseが返り、IsObjectで問題なく動作しました。Nothingとして扱われているのかどうかで変わっているのかな、と思いました。VBAでは、DOM要素そのものがなくてもNothingで初期化された状態なので、IsObjectでTrueが返る。DOM要素そのものはないのでクリックするとエラーが出る。NothingだとIF文には入らない。Nothingでエラーが出る。Nothingで初期化されていないので、IsObjectでFalseが返る、といった感じなのかな。VBSでは変数のデータ型を省いたり、そういった仕様の違いがあるのは知ってましたが、上記のような違いがあるのは初めて知りました。VBA、IE制御ちょくちょく小ネタを掲載していきたいと思います。月別アーカイブはてなブログをはじめよう!Shinezさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。