【VBA&seleniu】SendKeysで入力が重たい場合はjavascript実行を使う

excelvba エクセル

VBAでselenium操作によるブラウザ処理の中でフォームに文字列を入力したい時などがあると思います。

そんな時は「SendKeys」を使うことが多いですが、長文などの場合は相当処理が遅くなります。

SendKeysはキーをひとつづつ押すという作業を疑似的に行うメゾットです。

プログラムといえどそれなりの時間がかかるということです。

そこで代替案ですが、javascriptをVBA上で実行することによってエレメントに文章を挿入する方法を紹介します。

これにより数千文字でも一瞬で処理が終わります。

.ExecuteScriptがVBA上でseleniumを介してブラウザ上でjavascriptを実行するメゾットです。

第一引数に実行するjavascript、第二引数にjavascriptに引き渡す配列をセットします。

第二引数はjavascript内の「arguments[?]」に渡されます。

今回の例は1つですが複数処理する時などは配列で渡すほうがスマートでしょう。

 

 

コメント

タイトルとURLをコピーしました