Google翻訳に英文を書き込み、和訳の文字列を取得したいと考えています。
まず、書き込む部分までのコードとして次のようなものを考えましたが、上手く行きません。
どのように、改善すれば良いかわかる方イラッシャイましたら、ご指南の程宜しくお願い致します。
WebBrowserは、IE11に変更しています。
Public Class FormMain
Const GoogleUri As String = "https://translate.google.co.jp/?hl=ja&tab=TT"
Const MyStr As String = "Two important properties of the Chart class are the Series and ChartAreas properties, both of which are collection properties. The Series collection property stores Series objects, which are used to store data that is to be displayed, along with attributes of that data. The ChartAreas collection property stores ChartArea objects, which are primarily used to draw one or more charts using one set of axes."
Const myStr1 As String = "text-dummy"
Const myStr2 As String = "text-wrap tlid-copy-target"
Private Sub FormMain_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.WebBrowser1.Navigate(GoogleUri)
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
If e.Url.ToString = GoogleUri Then
Dim MyElements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("div")
For Each LopElement As HtmlElement In MyElements
If LopElement.GetAttribute("className") = myStr1 Then
LopElement.InnerText = MyStr
MsgBox(LopElement.OuterHtml)
End If
Next
End If
End Sub
End Class
No.1ベストアンサー
- 回答日時:
こんばんは、
スクレ―ピングを行いたいのだと思います。
参考になるかもと思い、以前作成したサンプルを投稿しますが、ご質問のようにClassとしたものでなく、A1セルの値(英文)を投げて翻訳された文字列を取得するプロシージャです。
翻訳順位を調整する場合は、ターゲットタグを調整する必要があると思います。
当方の都合で今週は、検証などが困難な為、Callで行けそうですが、Classにすることが必須であれば自身で書き換えてください。
Option Explicit
Sub translate_google_sample()
Dim objIE As InternetExplorer
Dim objtag As Object
Dim Eng As String, msg As String
Dim elm As Object, i As Long, flag As Boolean
On Error Resume Next
If ActiveSheet.Range("A1") = "" Then
MsgBox ("A1セルに入力してください?")
Exit Sub
End If
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.navigate "https://translate.google.co.jp/?oe=utf-8&hl=ja&u …
Call IEWait(objIE) 'IEを待機
Call WaitFor(2) '2秒停止
Eng = ActiveSheet.Range("A1")
For Each objtag In objIE.document.getElementsByTagName("textarea")
If InStr(objtag.ID, "source") > 0 Then
objtag.Value = Eng
Exit For
End If
Next
Call WaitFor(2)
flag = False
For Each elm In objIE.document.getElementsByTagName("span")
If elm.innerText Like "翻訳しています...*" Then
i = 1
End If
If flag = True Then
'Debug.Print elm.innerText
msg = elm.innerText
Exit For
flag = False
End If
If i = 1 Then flag = True
Next
objIE.Quit
objIE.Visible = True
Set objIE = Nothing
MsgBox (msg)
End Sub
Function IEWait(ByRef objIE As Object)
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
End Function
Function WaitFor(ByVal second As Integer)
Dim futureTime As Date
futureTime = DateAdd("s", second, Now)
While Now < futureTime
DoEvents
Wend
End Function
Call WaitFor(2)は、通信環境などで調整してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- 英語 できるだけ直訳で英語の翻訳をお願いします。(英語→日本語) 1 2022/10/15 20:59
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アップルシード「Dive for you」訳
-
ケース入り数を翻訳したいです。
-
I am honored to be with you t...
-
Tobias WolffのSay yes
-
フィリピンのBarangay Certific...
-
翻訳してほしいですm(_ _)m
-
単独の使い方
-
英語に翻訳
-
固有名詞の訳し方
-
この場合は、どちらを使うので...
-
至急 世界水泳に行った時、スペ...
-
化学名に付く"modified"はどう...
-
英語の翻訳をお願いします。 翻...
-
A watchmaker can use his hand...
-
励ましの言葉(翻訳お願いします)
-
英語で30mil以上500mil未満と...
-
○周年おめでとうございます! ...
-
フォロー外の方から来たThat's ...
-
Google翻訳のHPにコードで書き...
-
長い英文なのですが、どなたか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ケース入り数を翻訳したいです。
-
アップルシード「Dive for you」訳
-
化学名に付く"modified"はどう...
-
この場合は、どちらを使うので...
-
難しい質問ですが、ある祓詞の...
-
フィリピンのBarangay Certific...
-
○周年おめでとうございます! ...
-
至急、翻訳をお願いします。
-
英語に翻訳
-
浄土真宗本願寺派の方にお願い...
-
固有名詞の訳し方
-
英語の翻訳をお願いします。 翻...
-
教えてください 海外通販
-
すみません。日本語に訳してい...
-
日常翻訳を、お願いします。 Mo...
-
two-thirdsのハイフンについて
-
I am honored to be with you t...
-
どなたか、翻訳お願いします。...
-
「None found」とは?
-
翻訳お願いします! 努力家なあ...
おすすめ情報