VBAでヤフー検索する
yahooのページを立ち上げたい
さて、今日は4時半くらいに目が覚めちゃったので、朝っぱらからパソコンに向かってVBAの練習してました。
消化休暇の使い方としては割と有意義だと思うんですが、どうでしょう?
やってみたのはこちら↓
【お手軽カンタン自動化!エクセルVBA × IEで身代わりロボットを作る最短8ステップ】~その2~最小限のひな型を覚えよう
前回の記事で、「今後は一週間に一個のペースでマスターしていこう」って言ってたやつです。
…この土日はできてないですね。ハイ、すみません(笑)
物件の内見と買い付け申し込みで時間潰れたんだと思ってください(笑)
とりあえず、記載されていたコードを丸コピ打ち込んでみました。
![](https://www.taimamushin.com/wp-content/uploads/2021/09/080047c41d77c58d97cf85ec35d0e15b.png)
どんな動きをするのかとりあえず確認するだけのつもりだったんですが、なんかうまく動かないんですよねこれが(笑)
動かした結果がこちらです。
とりあえずIEでyahooのページは立ち上がるんですけど、10秒後、
![](https://www.taimamushin.com/wp-content/uploads/2021/09/486359223c22c9ae1b93f7f652f68c66.png)
こーなって、
![](https://www.taimamushin.com/wp-content/uploads/2021/09/abf92b3a4c3eeb1db239b7fb8223bddd.png)
こーなります。
目印を調べなおしてみる
1年前の僕ならここで諦めちゃうかもですが、一応一通りこの方のノート記事に目を通してたんで、こんな記事があるのを覚えてたわけですよ。
【お手軽カンタン自動化!エクセルVBA × IEで身代わりロボットを作る最短8ステップ】~その7~ DOM操作その一
こちらの記事によると、上の写真で引っかかってる行
「objIE.document.getElementById(“yschsp”).Value = “VBA”」
は、
「ヤフーのページの中で、検索窓の目印となる『yschsp』という記述を見つけて、そこに『VBA』という文字列を放り込む」
という動作をしているみたいですね。
で、こういう疑いが持ち上がるわけです。
「もしかして、ヤフーのページの作り方変わってるんじゃね?」
「『id=”yschsp”』の部分が、なんか別の書き方に変わっちゃったんじゃ?」
というわけで、VBAが立ち上げたまま放置プレイ中のヤホーのページで調べてみました。
![](https://www.taimamushin.com/wp-content/uploads/2021/09/eb22bf7a906b7f73af3d68cd620dade7.png)
案の定、変わってました。変わってましたというか、idなんてどこにも書いてない(笑)
代わりにclassが目印になってるようです(「class=”SearchBox__searchInput”」の部分)。
というわけで、class指定の書き方に変えてみました。
![](https://www.taimamushin.com/wp-content/uploads/2021/09/7f92390e36c9645cdfcab1197c9adabb.png)
(1行下は検索ボタンクリックの行なんですが、どうせこっちも変わってると思われるので、いったんコメント化)
よーし、スイッチョン!!
![](https://www.taimamushin.com/wp-content/uploads/2021/09/9a046efd877e40523e68783b2a664035.png)
ん~???
![](https://www.taimamushin.com/wp-content/uploads/2021/09/8b296d4aeaa1aa9e17f90b729aa4a5ff.png)
おかしいなー?(笑)
「綴りが間違ってるのかも~?」とか、「要素が同じページに2個以上あるのかも~?」とか思って調べてみたんですが、特に問題なし。
id指定とclass指定の考え方の違い
いろいろ調べてたら、原因は別のところにありました。
そのヒントになった記事がこちら↓
【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
こちらの記事に、こんな記述がありました。
「類似の命令で、getElementsByTagNameメソッドや、getElementsByClassNameメソッドなどがありますが、これらはElementsつまり複数形であることに注意してください。」
…オウ…
![](https://www.taimamushin.com/wp-content/uploads/2021/09/f9f2f8267651893dc20507a60167128c.png)
うん、s付いてないや(笑)
「なるほどー、だからid指定の時は番号を付けなくてよくて、class指定の時は番号が要るのね」
と、納得した瞬間でした。
というわけで、sを付けたら無事に動いてくれました。
検索ボタンの方も要素を調べて、修正したコードがこちらです。
![](https://www.taimamushin.com/wp-content/uploads/2021/09/0e4aae38a1f5494592124a884058f7cb.png)
動かしてみると、
![](https://www.taimamushin.com/wp-content/uploads/2021/09/fbc1ff07c972958f736b77a6530eec5d.png)
こーなって、
![](https://www.taimamushin.com/wp-content/uploads/2021/09/464b1f13b0d2bd53e52e687b363d661f.png)
こーなってくれます。
ついでにchrome版も作成
上手く動いてくれて気分が乗ってきたので(笑)、こちらの記事↓を参考に、
【お手軽カンタン自動化!エクセルVBA × Google Chromeで身代わりロボットを作る方法】
chrome版も作ってみました。
![](https://www.taimamushin.com/wp-content/uploads/2021/09/926c2ae29fa013f7581238fc80db9c3c.png)
chromeだと、命令文が違うのは当然として、検索窓とかの場所の指定方法やらの考え方も、IEの時とちょっと違うみたいですね。
こんな感じで覚えていけば、いずれ会計情報の入力を自動化できるかな?と、少し自信を深めることができた日になりました。
編集後記
昨日、売値480万の、土地値だけで470万の価値がある戸建て(路線価での評価)に、380万で買い付け申し込みを出してみましたタイマムシンです。
買えたら買えたで多分おいしい案件になると思います。買えなくても特に何も困りません。
ただこの物件、隣の物件の持ち主さんが欲しがってるようです。物件の担当の方からの情報です。
その方の提示額が結構無茶な金額だったようで、売主さん若干ご立腹とのことなので、僕が買える可能性がちょっと上がっているかもしれません。
売主さんはそもそも、「手残りが380万は欲しい」っておっしゃってるようなので、僕の買い付け額も無茶と言えば無茶な金額ではあるんですけどね(笑)
(売買価格から仲介手数料が引かれるので、手残りはそれだけ少なくなります)
結果は追ってご報告します。
では、お昼ごはんにオムライス食ってきます。
タイマムシンのオススメ本はこちら