ALL Program Selenium VBA

【VBA×Selenium】オブジェクト変数がカラの時にスキップする方法

VBASeleniumを使っていますが、オブジェクト変数が カラだった場合、処理をスキップする方法はありますか?
 

こんな疑問に回答します。

 

オブジェクト変数がカラだった場合とは?(問題点の確認)

本記事の読者の皆様は、プログラミング知見が高いと思いますので、
初歩的なところはショートカットして説明していきますね
(要望あればTwitterで「@nkmr_dai」向けに質問なげてくださいませ。回答できなかったら、申し訳ないですが。。。)

ということで、まずは、以下のコードをベースに説明します。

わざわざオブジェクト変数に入れてClickをさせてるのは謎ですが、お許しください。笑
Nakamura
 

はい。

ということで、もし仮に 該当のXPathが存在しなかった場合
obj.click()」の実行時、VBA側ではエラーになります。

これは当然のことで、オブジェクト変数に未格納な状態でClickメソッドを実行すると、
「何を押せばいいんですか?」とプログラム側で判断不可となるためエラーとなるわけです。
Nakamura
 

では、どうすれば良いの?ということを説明していきます。

 

オブジェクト変数がカラの時の戻り値は?(問題の理解)

この問題を解決するためには、オブジェクト変数が カラだった時の戻り値を知る必要があります。

結論、オブジェクト変数何も無い時戻り値は「Nothing」となります。

たまにVBAを触ると、オブジェクト変数がカラ=Nothing になること忘れちゃうんですよね。
Nakamura

はい。

ここまでで、カンが良い人は 解決方法は分かってしまってるかと思いますが、
Nothing」が戻り値であることが分かれば、IF文で分岐を作ってあげれば解消できますね。

前段で紹介したコードを元に、対象のXPathの有無で 処理が分岐する方法を 次段では説明していきますね。

 

オブジェクト変数がカラの時にスキップする方法(解決方法)

既に IF文で解決できると、前段で説明していますが、改めて。

 

結論、IF文でNothingの時は処理をスキップするようにコーディングしてあげれば解決します。

 

前段の説明用に紹介したコードを元に、コーディングすると以下の通り。

分かりやすく理解するために「obj = nothing」を条件分岐にしています。

一応、コード上にコメントを入れてますので、
そちらを一読してもらえれば、「そんなもんね」と理解できるかと思います。

上記のコードを理解できれば、もっとスリムなコーディングもできますので、次段で紹介しますね。
Nakamura
 

参考:もうちょっとスリムにコーディングしたい

もうちょっとスリムに 条件分岐を コーディングしたい人向けのコーディング方法も紹介します。

 

ちょっとだけ解説すると、
If obj = nothing then は、「空である場合に、正の処理してね。」となります。
この場合、空であるときは処理をスキップしたいため、Elseで追加コードを記載する必要があるわけです。

 

一方、今回のスリム化したコードでは
If Not(obj = nothing) then は、「空でない場合に、正の処理してね。」となります。
この場合、Elseを使わずに、そのまま コーディングすれば良いため、視認性が良くなります。

まぁ筆者は、プログラムはとりあえず動けば良いと思っている人間なので、自分が理解しやすいコーディング方法で使用すれば良いと思います。この辺は、好みの問題だと思うんで。
Nakamura
 

おわりに

今回はここまでとなります。

VBA×Selenium のネタでしたが、どちらかというとVBA寄りの話でしたね。

ただ個人的には、Seleniumの戻り値を1つとってもGoogle検索で中々出てこなかったので
今回の記事作成に至っていたりします。

今後も、VBA×Seleniumに関する、実際に直面した問題などをネタに記事作成して参りますので、
NakamuraBlogをどうぞよろしくお願いします。(主に自分の備忘止めブログになっていますが。)

ここまでお読みいただきありがとうございました。

少しでも あなたが ストレスレスなSeleniumライフを送れることを筆者を心より祈っております。

以上、おわりです。

 




  • この記事を書いた人

Nakamura(nkmr)

ブロガー│NakamuraBlog(ナカログ)運営 [月1.5万PV]│ 【経歴】IT会社に新卒入社 ▶︎ 通用しない ▶︎ プログラミングに出会う ▶︎ 年間1億円以上のコスト削減プログラムを開発 ▶︎ 会社賞受賞 ▶︎ 少しでも世の中の苦しんでる私と似た人に役に立てればと思いブログを開設。 ● 文系がプログラムと出会って会社員人生が変わった人。 ● 2020年より「嫁を置いて1人旅」の旅動画を投稿開始。

-ALL, Program, Selenium, VBA
-, ,