自分方位研究所

日々の活動記録

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ で、「絞り込み検索」ボタンを押す。

はてなブログの記事の管理画面から、記事一覧表を作成する一環としてやっていくことをひとつずつ見ていきます。今回は、「絞り込み検索」ボタンをクリックして、「カテゴリー/投稿者/投稿日」の入力ボックスを表示させます。

実際に入力するのは、「投稿日」です。この「投稿日」で、表示する期間を指定して、その期間内の全記事を表示させて、記事の情報を取り込んでいきます。

以下の画面は、はてなブログのダッシュボード > 記事の管理 ページ 初期画面です。
f:id:k-emu:20200607221407j:plain

ここで、「絞り込み検索」ボタンのソースコードは以下のようになっています。

<button class="entries-advanced-search js-entries-advanced-search" 
type="button">絞り込み検索</button>

 

次に、「絞り込み検索」ボタンをクリックすると、「カテゴリー/投稿者/投稿日」の入力ボックスが表示されます。

f:id:k-emu:20200607221418j:plain

この状態で「絞り込み検索」ボタンのソースコードを確認してみると以下のようになっています。

<button class="entries-advanced-search js-entries-advanced-search open" 
type="button">絞り込み検索</button>

1行目 js-entries-advanced-search の後に「open」の文字が追加されています。

「絞り込み検索」ボタンを押す度に、「カテゴリー/投稿者/投稿日」が出たり消えたり、同じくソースコードでも 「open」の文字が出たり消えたりしています。

「投稿日」に日付を入力するには、この  「open」の文字が出ている状態にしておきます。

------

以下は、「カテゴリー/投稿者/投稿日」が表示されていないときは「絞り込み検索」ボタンをクリックし、既に表示されているときは何もしない、という動作をするコードです。

Dim objTag As Object
    For Each objTag In objIE.document.getElementsByTagName("button")
        If objTag.innerHTML = "絞り込み検索" Then
            If InStr(objTag.outerHTML, "open") = 0 Then
                objTag.Click
                Exit For
            Else
                Exit For
            End If
        End If
    Next

objIE(記事の管理画面ページのオブジェクト)にて<button>タグを捜して、その中に「絞り込み検索」という文字があれば、さらにそのタグの中に「open」の文字があるかどうかを検索しています。
「open」の文字がなければ、「絞り込み検索」ボタンをクリックし、「open」の文字があれば、なにもせずに終了します。

このあとは、「投稿日」に開始と終了の日付を入力していきます。次回に続きます。