はてなブログのダッシュボード。記事の管理について。
昨日の続きです。日付を指定して、記事一覧が表示された後、指定した期間の記事が全て表示されるように「次のページ」をクリックします。
記事の管理ページの一番下に現れる「次のページ」ボタンをクリックします。
このボタンをクリックすることによって20記事分が現在表示されている記事の下に追加表示されます。
その前に確認。VBE(Visual Basic Editor)のツール >参照設定 にて以下の2つをチェックしておきます。
・Microsoft html Object Library
・Microsoft html Internet Controls
今頃になってコレチェックするはないでしょう?と言われるかもしれませんが、この2つをチェックしていないと「次のページ」ボタンがVBAでクリックできないのでした。
「次のページ」ボタンに関するHTMLコードを確認すると、以下のようになっています。<button>タグで style="display: inline-block;"
となっています。この状態では、まだ表示しきれていない記事があるので「次のページ」ボタンが表示されています。
そして、「次のページ」ボタンを何度かクリックして、最後まで記事を表示しきったとき(最後のページまで表示したとき)には「次のページ」が消えていますので、<button>タグは、 style="display: none;"
となっています。
これをVBAコードで記述していくと、以下のようになります。
objIEは、管理ページのオブジェクトです。
内容は、<button>タグの中で、文字列 「次のページ」を含んだものを捜します。
そして、みつけたら、そのタグのHTMLコードの中に「none」の文字列があるか捜します。「none」が見つからなければ、「次のページ」はまだ存在しているということなので<button>タグを.Click します。
クリックした後、タイマー用として作成した「IE_WAIT」プロシージャを呼び出して、IEの画面が落ち着くまで待機します。(このプロシージャの中身については、今回は省略します。
一度For Each ループを抜けて、再度同じことを実行し、「none」の文字列をみつけたら、Do-Loopを抜けて処理完了です。
これで、「次のページ」ボタンはクリックしきったので、1回で取得する記事 一覧が表示できたことになります。
次回に続きます。次でようやく、「記事の管理」ページのソースコードをちゃんと見ていき、各記事編集用アドレスなどの内容を取得するにはどのタグを見ればよいのかを捜していきます。