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で <b>有料メンバー</b>? 下記、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 追記(※アクセス数が増えたので、何かなぁと思ったら・・・ぉぃぉぃ)
三流君のコードは以下のようになっていたのですが
↓--------------------------------------------------
For Each objINPUT In objIE.document.getElementsByTagName("input")
If objINPUT.Value = "検索" Then
objINPUT.Click 'クリック処理↑--------------------------------------------------
現状のはてなの検索ボタンを押すには、
↓--------------------------------------------------
For Each objINPUT In objIE.document.getElementsByTagName("button")
If objINPUT.Type = "submit" Then
objINPUT.Click 'クリック処理↑--------------------------------------------------
以上の点を変更すると、うまく検索してくれるようになりました。
↑とても、ありがたいですね。みなさんも、いろいろとアレンジして使ってみてください。