エクセルVBAの相談です。エクセルからGoogle翻訳のフォームに文字を入れて 結果を戻したいのですが、よくわかりません。
エクセルVBAの相談です。エクセルからGoogle翻訳のフォームに文字を入れて 結果を戻したいのですが、よくわかりません。 以下の「dr.FindElementByName(●).SendKeys (MyWord)」 の部分が誤っていると思うのですが、わかる方教えて頂けないでしょうか? ヤフーの検索部分だと●が"p"でいけるようなのですが、検証を見てもよくわからないです。 Option Explicit Sub sample() Dim dr As New Selenium.WebDriver Dim MyWord As Variant MyWord = Range("A1").Value dr.Start "chrome" dr.Get "https://translate.google.co.jp/?hl=ja&sl=zh-CN&tl=ja&op=translate" dr.FindElementByName(●).SendKeys (MyWord) End Sub
Visual Basic・44閲覧
ベストアンサー
中国語→日本語変換ですか 入力エリア(<textarea>タグ)には name属性 は有りません dr.FindElementByName(●) ⇑ コレじゃなく dr.FindElementByTag("textarea") を利用します ちなみに 長文じゃなければ⇓ユーザ定義関数で翻訳も可能(第2引数を省略すると日本語に変換) Function Translation(原文 As Range, Optional 翻訳 As String = "ja") As String Dim HtmlDoc As Object Set HtmlDoc = CreateObject("htmlfile") With WorksheetFunction HtmlDoc.Write .WebService("https://translate.google.pl/m?sl=auto&tl=" & 翻訳 & "&q=" & .EncodeURL(原文)) End With Do While HtmlDoc.getElementsByTagName("body").Length < 1 DoEvents Loop Translation = HtmlDoc.getElementsByClassName("result-container")(0).innerText End Function Sub RegisterMyFunction() Application.MacroOptions Macro:="Translation", _ Description:="翻訳", _ Category:="文字列操作", _ ArgumentDescriptions:=Array("翻訳するセル", _ "en:英語" & Chr(10) & "ko:韓国語" & Chr(10) & "zh-CN:中国語(簡体)") End Sub
⇑ Sub RegisterMyFunction()はユーザ関数を[関数の挿入] で利用する際の簡単な説明を登録するマクロなので、最初に一回だけ実行 シート上で =Translation(原文セル,翻訳言語) で翻訳されます 第二引数を省略した場合、日本語に翻訳します 例:A1セルの文字列を日本語に変換 =Translation(A1) 例:A1セルの文字列を英語に変換 =Translation(A1,"en") 英語、韓国語、中国語(簡体) 以外のコードは⇓で確認して下さい https://cloud.google.com/translate/docs/languages?hl=ja
質問者からのお礼コメント
すごいですね。あっさりと入力できました。 ありがとうございました。
お礼日時:5/22 13:51