自分方位研究所

日々の活動記録

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ の「絞り込み検索」で、投稿日を設定する。

Excel VBAのIE制御で、はてなブログの記事の管理画面 >「記事の管理」ページを制御します。

はてなブログの記事の管理画面から「記事の管理」ページを表示して、「絞り込み検索」ボタンをクリックして表示される、投稿日のテキストボックスに検索対象となる日付の期間を入力します。

ブラウザがGoogle chromeの場合は、「投稿日」のテキストボックスには、「年/月/日」という文字が表示されており、▼マークをクリックするとカレンダーが出現して日付を選びます。また、「年/月/日」に直接数値を入力することもできます。

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

日付を入力すると、このようになります。

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

 

対して、IEの場合。投稿日のテキストボックスは、空欄で、マウスオーバーも動作せず。なので、キーボードから直接手打ちで日付を入力していきます。

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

そこで、Chromeと同じように 「yyyy/mm/dd」形式で日付を指定してみましたが、全然検索してくれません。

そこで、「/」を「-」に変更して 「yyyy-mm-dd」形式にしたところ、うまく検索してくれました。

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

 

========================================

では、実際にVBAでコードを作成していきます。

先ず、この「投稿日」部分のソースコードを確認すると、以下のようになっています。
<input>タグのvalue=""となっていますので、ここに日付を設定します。

<input name="datetime_from" class="entry-search-input" type="date" value="">
<input name="datetime_to" class="entry-search-input" type="date" value="">

========================================

VBAコードは以下のようになります。
objIEは、管理ページのオブジェクトです。

<input>タグの name="datetime_from" を捜して、検索日の開始を、
<input>タグの name="datetime_to" を捜して、検索日の終わりを指定します。

'★投稿日をセット
Dim objTag As Object
    For Each objTag In objIE.document.getElementsByTagName("input")
        If objTag.Name = "datetime_from" Then
            objTag.Value = "2020-01-01"
        End If

        If objTag.Name = "datetime_to" Then
            objTag.Value = ymdEN "2020-02-01"
        End If
    Next objTag

投稿日の期間を、2020-01-01 ~ 2020-02-01 に指定すると実際に表示されるのは1月1日から1月31日まで。検索日の開始日は検索結果に含まれますが、終了日は、指定した日付の1日前までのようです。

1回の検索表示では20記事までが表示され、検索結果がそれ以上の記事の場合には一番下に 「次のページ」ボタンが表示され、それをクリックすると次の20件が下方に追加表示されます。 「次のページ」ボタンは、検索対象の記事を表示しきるまで出現します。

 

上記VBAコードは、検索日の設定までで、このあと、「絞り込んで検索」ボタンを押す必要があります。明日に続きます。