pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

VBA:ExcelとIEの連携07

記事タイトルがh1の時(新しいWP)の対象タグ参照方法

WPのバージョンが新しくなると、記事見出しは「h1」タグが使われています。そのため、前回までの記事に書いた方法だとうまくいきません。

なお、事前に、ie、HTMLなどの参照設定忘れないようにしてくださいね。

f:id:PageTAKA:20140611142943j:plain

取得済みのタグをclassNameで対象かどうか判定

新しいWPの場合、記事見出しにはクラス(HTMLの)が当てられています。そのため、取得したh2タグのClass名が「entry-tytle」であれば作業を行う、というように設定しました。

Sub ieURL3()


'IEを使えるようにします
Dim ie As InternetExplorer
Set ie = CreateObject("internetexplorer.application")
'変数 aUrlなどを用意
Dim aUrl As String      '対象URL
Dim htText As String    '対象HTMLタグ名
Dim clName As String    '対象class名
aUrl = "http://c.saidaiji.org/"
htText = "h1"
clName = "entry-title"

'ie呼び出し
ie.Visible = False
ie.Navigate aUrl

'読み込み完了待ちの循環
Do While ie.Busy Or ie.ReadyState < READYSTATE_COMPLETE
    DoEvents
    Debug.Print "/";
Loop
    Debug.Print vbCr


'ieからHTMLタグを取得し、イミディエイト窓にテキスト表示
Dim tagHtml As Object

    'タグ対象で循環
    For Each tagHtml In ie.Document.body.getElementsByTagName(htText)
        '条件、そのうちclass名がpostなら以下実行
        If tagHtml.className = clName Then
            Debug.Print tagHtml.innertext
        '条件終了
        End If
    '循環終了
    Next
    
'終了
ie.Quit
Set ie = Nothing


End Sub

この結果、次のような流れを作れば、Excelからie経由でWordPress記事更新状況を判断できるはずです。結構いい加減ですけど。

  1. Excelのセルから対象URLを取得(すべてWordPress
  2. ie経由で対象URLを読みに行く
  3. WordPressのソースから、h1、h2のいずれをキーにするか判定
  4. 記事見出しを取得しExcelセルに保存
  5. 前回取得の内容と比較し、前回から記事更新があったかどうか判定する

と、およそ次のような流れです。
もっとも、判定に使うのが「記事見出し」だけですから、不十分です。しかし、記事そのものや、タイムスタンプなどは、その先にあるわけですから、必要なら追加するというくらいで、とりあえず簡単に試してみる、ということで、ひとまず良いのかな~などと…。