三流君 ken3のmemo置き場

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

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
Ken3三流君の連絡先:
[google formsで連絡する]
上記の問い合わせフォームに質問・感想など気軽に書き込んでください

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

ExcelのA列の単語を翻訳サイトにセット取得を自動で連続実行

2012/6/7 追記(コメント欄の動作報告を上に表示)

translation.infoseekのフォーマットが変更になったのかうまく取得できなくなっています。
objIE.Document.all("origin_doc").Value = Cells(yCNT, 1) 'A列の値を渡す
↑ここでエラーが出て止まってしまいますね。

現在、サンプルコードでは動かないみたいなので、参考程度に見てください


下記の質問を見て、昔作ったExcelからIE操作のサンプルを思い出す。

http://q.hatena.ne.jp/1279514525
【大量の英単語のリストを、日本語訳してくれるソフト】
手元に1000以上の英単語のリストがあります。この英単語を一気にすべて和訳してくれるソフト/サービスを探しています。
オリジナルな英単語帳を作りたいイメージです。

でも、無料サイトだからって、連続実行して迷惑をかけると

大量アクセス で 検索するとイロイロ出てくるけど、

岡崎市立図書館HP大量アクセス事|ムムの呟き
http://ameblo.jp/murmur-of-ignorance/entry-10575127519.html

から、岡崎市 図書館 大量アクセスで検索

岡崎図書館事件まとめ
http://librahack.jp/

みたいなこともあるので、注意が必要だったり。。。
※無料・タダに飛びつくとタダより高い物はないにならないように。。。
※※学校の宿題も自分で紙の辞書をひいた方が勉強になったり、、まぁ今はPCの辞書や携帯電話かもしれないけど。

そんな前説はこのくらいにして(前説のほうが解説よりも長かったり)

QA0914 .Document.allを使いデータセットと結果取得を連続で
http://ken3-info.blog.ocn.ne.jp/objie/2009/09/qa0914_document.html

これを参考にして、
(※サンプルと違うのは、URLが違うのと、オプションを選択しなかっただけですが)

こんな感じかなぁ

Option Explicit

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

Sub ie_test_e()

'IEの起動
    Dim objIE As Object '変数を定義します。
    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 99  '5行目から最大99行目まで
        If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白だったらループを抜ける
        
        '処理したいページを表示します。ここでは翻訳ページ
        objIE.Navigate "http://translation.infoseek.co.jp/?ac=Text&lng=en"  '.Navigate メソッドで表示する。
    
        '↑の起動待ち↓ 5秒間、待ってみた。
        Wait_Time = DateAdd("s", 5, Now())  '5秒後を  DateAddで計算
        Do While Now() < Wait_Time  '現在時刻が↑より小さい間 バカみたいに空回り(時間待ち)
            DoEvents
        Loop
        '※三流コードサンプルからアレンジして 良いコードを作ってくださいね。
    
        'ページの表示完了を待ちます。
        While objIE.ReadyState <> 4 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
        '※三流コードサンプルからアレンジして 良いコードを作ってくださいね。
    
    '翻訳の結果を 表示完了を待ちます。
        While objIE.ReadyState <> 4 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

実際のテストファイルは
/vba/zip/IE_TEST_0719.zip
においておくので、使ってみてください。

解説は、ほぼ同じなので、こっちに置いてある動画

QA0914 .Document.allを使いデータセットと結果取得を連続で
http://ken3-info.blog.ocn.ne.jp/objie/2009/09/qa0914_document.html

を見てください

何かの参考となれば、、、
※連続処理は注意して実行してくださいね・・・

その他 処理と関係ない広告です

下記、IE操作と関係ない広告です。
(無料サイトも 広告を狙っているのに、、、連続実行されたら悲しいなぁ・・・)なんて思いつつも、下記最近の人気商品です。

【3気圧防水 breo ブレオ シリコンウォッチ 腕時計 ロームウォッチ 7月19日...[続きを見る]

【EFX正規販売店】 EFX パフォーマンスリストバンド スポーツ WR 7月19日...[続きを見る]

メール便送料無料】 ☆2個セット☆ SANYO 【サンヨー DB-L8 7月19日...[続きを見る]

DS陰山メソッド 電脳反復 正しい漢字かきとりくん → 7月19日...[続きを見る]

JUNGLE STORM / サイドくしゅくしゅデザイン カーゴ ショー 7月19日...[続きを見る]

NEO by OYAIDE Elec d+ FireWire 6pin- 7月19日...[続きを見る]

SALUS アイススティックメーカー オレンジ → 7月19日...[続きを見る]

UVカット99%防災フィルム50SL → 7月19日...[続きを見る]

オート 油性替芯 0.7mm (インク色:クロ) No.87NP 5セッ 7月19日...[続きを見る]

カーメイト(CARMATE) プリウス用ラウンドノブ LS138 → 7月19日...[続きを見る]

カベンディッシュ&ハーベイ コーヒードロップ 200G → 7月19日...[続きを見る]

シルバー磨きクロス 用途の違う布の2枚セット ジュエリーセーム → 7月19日...[続きを見る]

スターウォーズ ヴィンテージ ベーシック フィギュア ダース・ベイダー 7月19日...[続きを見る]

ブラック岩塩(ヒマラヤ岩塩:バスソルト) ミル 1kg → 7月19日...[続きを見る]

ブレイク ブレイド PCデスクトップアクセサリー → 7月19日...[続きを見る]

モチベーション3.0 持続する「やる気!」をいかに引き出すか - 現在人気の モチベーション3.0 持続する「やる気!」をいかに引き出すか など 本・書籍を紹介する(...[続きを見る]

ローヤル Rody ロディ コンセントキャップ → 7月19日...[続きを見る]

蛍/少年(初回限定盤)(DVD付) → 7月19日...[続きを見る]

戦国BASARA弐 其の四 7月19日...[続きを見る]

ランダムな占い

再生リスト:[占い 今日のラッキーカラー]をショート動画

Ken3 ホームページ 目次

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

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



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