三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


IEで表示されている はてなブログ 編集画面の本文を書き換えるコード

IEで表示されている編集画面の中から、
本文 テキストエリア
を探して、内容を置き換える。

そんな処理を探ってみたいと思います。

デバッグ風景の動画
https://www.youtube.com/watch?v=qdSxWCeNa2w
www.youtube.com

1.表示されているIEを捕まえる
URLに /edit が入っているかを条件にIEを探す

2.ソースの中から、本文・テキストエリアを探る

<textarea id="body" class="editor-body-textarea" name="body"
 cols="50" rows="15" placeholder="本文">
YouTubeで &lt;b&gt;有料メンバー&lt;/b&gt;?
下記、PC版YouTubeのメニュー

を探し、
textarea id=body
を見つけた

3.内容を更新する(書き換える、置き換える)
textarea id=bodyを操作したかったので、
'データをセットする
objIE.document.all("body").Value = Replace(objIE.document.all("body").Value, ":movie:w560", ":embed:cite")
と、
コードを書いてみた。

4.蛇足 更新ボタンを押す
更新ボタンを探ると

          <input type="submit"
            value="更新する"
            id="submit-button"
            class="btn btn-primary js-default-button editor-save-button editor-save-button-publish " />

が見つかるので、

objIE.document.all("submit-button").Click

と、単純に.Click で更新ボタンをクリックしてみた。

下記、
テストで作成したソースです。動画と合わせてみてください。

Option Explicit

'ブログの編集画面を探し、本文の一部を書き換え、更新ボタンを押す
Sub test20180624()

    'オブジェクトを格納する変数
    Dim objShell As Object, objWindow As Object

    Dim objIE As Object  '捕まえたIE
    
    Set objIE = Nothing  '初期化

    'シェルのオブジェクトを作成する
    Set objShell = CreateObject("Shell.Application")
    
    'ウインドウの数だけまわすぞ
    For Each objWindow In objShell.Windows
        'TypeNameでオブジェクト変数のタイプを表示する
        Debug.Print "タイプは:" & TypeName(objWindow.document)
        'HTMLDocumentだったら
        If TypeName(objWindow.document) = "HTMLDocument" Then
            'URLとタイトルを表示する
            Debug.Print "タイトル:" & objWindow.document.Title
            Debug.Print "URL:" & objWindow.document.Url
            If InStr(objWindow.document.Url, "/edit") > 0 Then 'URLの中にeditがあるか
                Set objIE = objWindow   '代入する
                Exit For  '見つけたのでループを抜ける
            End If
        End If
    Next
    Set objShell = Nothing

    'URLが見つかったか判断
    If objIE Is Nothing Then
        'メッセージ表示、終了
        MsgBox "登録するIEのページがみつかりません"
        Exit Sub
    End If

    'MsgBox objIE.document.Title & "を見つけたよ"


    'データをセットする
    objIE.document.all("body").Value = Replace(objIE.document.all("body").Value, ":movie:w560", ":embed:cite")
    
    '更新ボタンを押す
    objIE.document.all("submit-button").Click '更新ボタンをクリック
    
    'MsgBox "更新終了"

End Sub



デバッグ風景の動画※冒頭と同じです。
https://www.youtube.com/watch?v=qdSxWCeNa2w
www.youtube.com



続き 検索ボタンを押すは
ken3code.hatenablog.jp

また参考にした過去のコードこちらもヨロシク。
ken3memo.hatenablog.com


2020/05/21 追記(※アクセス数が増えたので、何かなぁと思ったら・・・ぉぃぉぃ)

www.mypath-as-variant.com
より

三流君のコードは以下のようになっていたのですが

↓--------------------------------------------------

For Each objINPUT In objIE.document.getElementsByTagName("input")
If objINPUT.Value = "検索" Then
objINPUT.Click 'クリック処理

↑--------------------------------------------------

現状のはてなの検索ボタンを押すには、

↑とても、ありがたいですね。みなさんも、いろいろとアレンジして使ってみてください。

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)