DeepLでエクセルのA列の英文の日本語訳をB列に表示したいと思い、ネットで検索して、下記のような式をコピペすればよいのか!と思い入力しましたが、
「s = ie.document.getElementsByClassName("lmt__target_textarea")(0).innerText '結果文字取得」のところでエラーが出てしまいます。
(デバック?したらそこが黄色くなり、「error91」とでました。)
どう修正すればよいのでしょうか。
Sub sample()
Dim ie As Object
Dim lastRow As Long
Dim r As Long
Dim s As String
Set ie = CreateObject("InternetExplorer.Application") 'ie
ie.Visible = True 'ie表示
lastRow = Range("A" & Rows.Count).End(xlUp).Row 'A列最終行
Range("B:B").ClearContents '結果クリア
For r = 1 To lastRow '注目行を1行目からA列最終行まで
If Range("A" & r).Value <> "" Then 'A列注目行の値が空白でなければ
ie.navigate "https://www.deepl.com/ja/translator#en/ja/" & WorksheetFunction.EncodeURL(Range("A" & r).Value) 'A列注目行の値(URLエンコード)で翻訳
Do While ie.Busy Or ie.ReadyState <> 4: DoEvents: Loop '表示完了待ち
Do
s = ie.document.getElementsByClassName("lmt__target_textarea")(0).innerText '結果文字取得
Loop Until s <> "" '結果が空白でなかったら終わり(空白ならまだ用意できていない)
Range("B" & r).Value = s 'B列に結果表示
End If
Next
ie.Quit 'ie終了
End Sub
No.2ベストアンサー
- 回答日時:
No1です。
>DeeplをIEではなくgoogleを介して反映させること等はできますでしょうか。
No1に書いた通りです。
・IEでアクセスするならご提示のコードで可能。
・他のブラウザを利用するのならSelenium経由で。
「googleを介して」というのが何を意味しているのかわかりません。
サイト(google検索)のことなのか、ブラウザ(Chrome)のことなのか、あるいは別の意味なのか・・
検索してみる気さえあるなら、すぐに見つかるはずですが・・
https://3rdcom.biz/b/selenium%E3%82%92%E4%BD%BF% …
ご返信ありがとうございます。
IEがうまく作動しないので、
・他のブラウザを利用するのならSelenium経由で
やっていこうと思います。
ド素人なので検索ワードすら浮かびませんでした。URLありがとうございます。拝見します。
No.1
- 回答日時:
こんにちは
ご提示のままのコードでテストしてみましたが、ちゃんと動作するようです。
エラーからの推測になりますけれど・・
質問者様の環境では、IEでアクセスしていないのではありませんか?
IEはサポート切れなので、Edgeが代わってアクセスしている可能性が高いのではと想像します。
(Edgeの場合、VBAから直接にはDOM参照ができません)
もしも原因が上記であるなら、対応法としては、サポートを無視して強制的にIEを利用するか、Selenium等を利用して同様のアクセスを行うように仕組みを変更するかでしょうか。
◇SeleniumBasic
https://florentbr.github.io/SeleniumBasic/
◇Seleniumを介さずに同様のことを行うことも可能ではあります。
(その分のコードを作成する必要がありますが・・)
https://qiita.com/uezo/items/66e20b064ffd5f239b9a
お忙しいなかご返信いただきありがとうございます。
また、URLまで載せていただき有難いです。
頂いた、URL
SeleniumBasic
等のサイトを拝見しましたが、少し私には難しい内容のようでした。
DeeplをIEではなくgoogleを介して反映させること等はできますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
HTML文書を上書き保存してもブ...
-
HTMLのimageをクリックする方法
-
CSSチェックをしたいのですが
-
HTMLとブラウザについて
-
dreamweaverでCSSのレイアウト...
-
起動済みのIEをハンドルから操...
-
WindowsとMacでのChromeのスタ...
-
IEの[新規作成(N)]→[ウィンドウ...
-
doc As HTMLdocumentのコンパイ...
-
WEBページからのメッセージをVBAで
-
エクセルでURLからタイトルのみ...
-
DOCTYPE宣言はしなくていいの?
-
VBAでgetElementByTagName
-
プルダウン(リストボックス)の...
-
HTML4.01のままの弊害
-
<IMG>のALIGN属性値「absmiddle...
-
XMLを作成してもタグしか表示さ...
-
テキストエリア内の改行禁止
-
\\n \\r \\t について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
HTMLのバージョンの確認方法は?
-
Macで見るとページが崩れます。
-
WindowsとMacでのChromeのスタ...
-
<IMG>のALIGN属性値「absmiddle...
-
プルダウン(リストボックス)の...
-
エクセルのシートをブラウザに...
-
スマホでページ内リンクができない
-
doc As HTMLdocumentのコンパイ...
-
tabキーによるfocusの当たり方...
-
主要ポータルサイトの多くがス...
-
VBA オブジェクトが必要です
-
VBAでgetElementByTagName
-
起動済みのIEをハンドルから操...
-
HTML文書を上書き保存してもブ...
-
DOCTYPE宣言はしなくていいの?
-
Shift-JISでxml宣言するべき?
-
ブラウザのエンコード 自動選...
-
WEBページからのメッセージをVBAで
-
ブラウザ依存のレイアウト・・...
おすすめ情報