三流君 ken3のmemo置き場

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

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

VBA IE操作 .Focusでフォーカスをセットしてみた(入力エリアの移動)

はてな ダイアリー から 現在リダイレクトしているので、テストコードは動きません。



下記のような質問をもらいました。

>あるページの決まった位置で画面を表示させるには、どのようにするのかご教授してもらえませんか?
>各ページに、サイト名、URL、コメントがあって、これを随時入力するプログラムを作成中です。
>このとき、入力するBOXが、ページの下のほうなので、
>トップからかなりスクロールしなければなりません。
>入力をモニターしたいので、新しいページに飛んだときに、画面表示を入力の場所に移動するには、
>どのようにするのがいいでしょうか?

単純に .Focus すると、入力エリアを移動することができるので、
目的のエリア オブジェクト.Focus で 使ってみてください。

'表示位置を調整する
objIE.Document.getElementsByName("名前")(0).Focus 'フォーカスをセット
↑こんな感じで、簡単に使えると思います。

Option Explicit

Sub ie_test()  'IEテストする。

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

'ページの表示完了を待ちます。
    While objIE.ReadyState <> 4 Or objIE.Busy = True '.ReadyState <> 4の間まわる。
        DoEvents  '重いので嫌いな人居るけど。
    Wend
    
    '項目(name=xxxx)にセットする。
    objIE.Document.getElementsByName("username")(0).Value = "テスト君"
    objIE.Document.getElementsByName("useremail")(0).Value = "test@ken3.org"
    objIE.Document.getElementsByName("body")(0).Value = "ここにコメントを書く" & vbCrLf & "改行" & Now()
   
    '表示位置を調整する
    objIE.Document.getElementsByName("body")(0).Focus  'フォーカスをセット

End Sub

テストの結果、テスト動画

テストの動画 http://www.youtube.com/watch?v=E5S16C1LnMw
www.youtube.com

↑いつもの混乱ぶりを笑ってくださいね。

Ken3 ホームページ 目次

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



Googleを使用して検索する

読者の声:三流君の説明・解説じゃ よくわからなかったから、Googleを使って、自分で検索します。
三流君:残念です。あっ、下記にGoogleの検索窓を設置しました。
いろいろ指定して試してみてください。

Google
探す言葉:気になる単語や,オブジェクト(Document),プロパティ(.Busy)やメソッド(.Navigate)などを入れて検索してみてください。


言語を指定:見つからない時は指定無しで探す

サイト指定:人気QAサイト や 一次情報MS本家を指定する
一次情報・二次情報まとめから探る
QAサイトの質問から探る
検索実行: ←オプション確認後に検索ボタンを押してください

期間指定:情報の鮮度も大切?
検索実行: ←オプション確認後に検索ボタンを押してください


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