三流君 ken3のmemo置き場

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

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

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

QA0914 VBAでIE操作 Document.allでWeb上の項目へデータをセットする

処理のポイントは

VBAIE操作 Document.allでWeb上の項目へデータをセットする
試行錯誤の動画 http://www.youtube.com/watch?v=Jnkp0x3Hr-Q
www.youtube.com

objIE.Document.all("origin_doc").Value = Cells(yCNT, 1) 'A列の値を渡す
objIE.Document.all("selector_1").Checked = True
objIE.Document.all("submit").Click '翻訳ボタンを押す

上記3つみたいに、
.Document.all("項目名").プロパティ/メソッド
みたいにして、値をセットしたり、ボタンをクリックしたりして、
操作します。

質問内容と簡単な解説は http://ken3-info.blog.ocn.ne.jp/objie/2009/09/qa0914_document.html を見て笑ってください。


Option Explicit

'IEを使い 日本語を韓国語へ変換するサイトへデータをセット
'A5にセットされた日本語を 変換サイトへ渡す(セットする)
'表示された変換結果を受け取り 隣のB5にセットする
'A列のデータが終了するまで、翻訳サイトにデータセット、結果をB列にセットを繰り返す。

Sub ie_test_ko()

'IEの起動
    Dim objIE As InternetExplorer '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True      '可視、Trueで見えるようにします。
    
'表示位置(左上の座標)とサイズ(高さ・幅)を調整する
    objIE.Top = 100      '左上 上位置
    objIE.Left = 100     '左上 左位置
    
    
'変換元の日本語が無くなるまでループ
    Dim Wait_Time As Date  '秒数を計算するため
    Dim yCNT  As Integer   '行数
    
    For yCNT = 5 To 999
        If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白だったらループを抜ける
        
        '処理したいページを表示します。
        objIE.Navigate "http://translation.infoseek.co.jp/?ac=Text&lng=ko"  '.Navigate メソッドで表示する。
    
        'ページの表示完了を待ちます。
        While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True '.ReadyState <> 4の間まわる。
            DoEvents  '重いので嫌いな人居るけど。
        Wend
        
    'ページが表示されたので、表示された文章に対して、処理を行います。
    
        objIE.Document.all("origin_doc").Value = Cells(yCNT, 1) 'A列の値を渡す
        objIE.Document.all("selector_1").Checked = True
        objIE.Document.all("submit").Click '翻訳ボタンを押す
        
        '↑の起動待ち↓なんか、止まった感じがしてイヤなんだけど。。。
        Wait_Time = DateAdd("s", 5, Now())  '5秒後を  DateAddで計算
        Do While Now() < Wait_Time  '現在時刻が↑より小さい間 バカみたいに空回り(時間待ち)
            DoEvents
        Loop
        '↑ホントはShell関数とexplorer.exeでIEが完全に起動するまで待ちたいんだけどなぁ・・・
        '※三流コードサンプルからアレンジして 良いコードを作ってくださいね。
    
    '翻訳の結果を 表示完了を待ちます。
        While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True '.ReadyState <> 4の間まわる。
            DoEvents  '重いので嫌いな人居るけど。
        Wend
    
        '結果のエリア converted を 取り出し、隣のB列にセット
        Cells(yCNT, 2) = objIE.Document.all("converted").Value
    
    Next yCNT

'処理が終わったので、IEを閉じます。
    objIE.Quit  '.Quitで閉じる
    Set objIE = Nothing '使用したオブジェクト変数もキレイにしてね。
   
End Sub


質問内容と簡単な解説は http://ken3-info.blog.ocn.ne.jp/objie/2009/09/qa0914_document.html を見て笑ってください。

Ken3 ホームページ 目次

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

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



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