三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

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

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

ページを表示させ、指定位置にスクロールさせるテスト

テストページ
http://oct2011.s2008day.com/test.html
を表示後、
文字列を置き換え、Div id=xxxxのタグを追加する。
id=xxxxの.offsetTopを取得してから、
JavaScriptscrollToでスクロールさせる
そんなテスト動画です。


ソースコード

Option Explicit

'ページを表示させ、指定位置にスクロールさせるテスト
'strBODY = objIE.Document.body.InnerHTML で変数に入れて
'Replaceで div id=xxxx を追加
'id=xxxx の.offsetTop を取得後、scrollToでスクロールさせる

Sub ie_scroll_test_1017()

'IEの起動
    Dim objIE As Object '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True      '可視、Trueで見えるようにします。
    
'処理したいページを表示します。
    objIE.Navigate "http://oct2011.s2008day.com/test.html"

'ページの表示完了を待ちます。
    While objIE.ReadyState <> 4 Or objIE.Busy = True '.ReadyState <> 4の間まわる。
        DoEvents  '重いので嫌いな人居るけど。
    Wend
    
'ページのスクロールテスト
    'BodyのHTMLを書き換える 自分で決めたid を <divでまず追加する
    Dim strBODY As String
    strBODY = objIE.Document.body.InnerHTML '変数に代入
    strBODY = Replace(strBODY, "秦佐和子", "<div id=hata>秦佐和子</div>")  '秦にid=hataを付ける
    objIE.Document.body.InnerHTML = strBODY  'データをセットする
    DoEvents
    '↑Body全体を読み込んで、一部を書き換え、また全体に代入しただけです・・・
    
    '次に、追加したidに対して処理を行う(a アンカーのほうがよかったかもと思いつつ)
    '(表示位置を調整する)
    Dim y As Long
    Debug.Print objIE.Document.getElementById("hata").offsetTop
    y = objIE.Document.getElementById("hata").offsetTop  'スクロール位置を保存する
    'javascriptのscrollToを呼ぶ(※IEのWindowの指定がわからなかったので、苦肉の策)
    objIE.Document.Script.setTimeout "javascript:scrollTo(0," & y & ");", 1000
    '↑こんな感じでJavaScriptを混ぜることができるので、
    'VBAの処理に困ったら、javascript側から攻めてみては・・・・

End Sub

テスト結果と簡単な解説動画

三流君 IE操作 VBA DIVタグを追加して、.offsetTop分scrollToでスクロール - YouTube
www.youtube.com

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



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