アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (2件)

No1です。



>DeeplをIEではなくgoogleを介して反映させること等はできますでしょうか。
No1に書いた通りです。

・IEでアクセスするならご提示のコードで可能。
・他のブラウザを利用するのならSelenium経由で。

「googleを介して」というのが何を意味しているのかわかりません。
サイト(google検索)のことなのか、ブラウザ(Chrome)のことなのか、あるいは別の意味なのか・・

検索してみる気さえあるなら、すぐに見つかるはずですが・・
https://3rdcom.biz/b/selenium%E3%82%92%E4%BD%BF% …
    • good
    • 0
この回答へのお礼

ご返信ありがとうございます。

IEがうまく作動しないので、
・他のブラウザを利用するのならSelenium経由で

やっていこうと思います。

ド素人なので検索ワードすら浮かびませんでした。URLありがとうございます。拝見します。

お礼日時:2022/01/26 10:25

こんにちは



ご提示のままのコードでテストしてみましたが、ちゃんと動作するようです。


エラーからの推測になりますけれど・・
質問者様の環境では、IEでアクセスしていないのではありませんか?
IEはサポート切れなので、Edgeが代わってアクセスしている可能性が高いのではと想像します。
(Edgeの場合、VBAから直接にはDOM参照ができません)

もしも原因が上記であるなら、対応法としては、サポートを無視して強制的にIEを利用するか、Selenium等を利用して同様のアクセスを行うように仕組みを変更するかでしょうか。

◇SeleniumBasic
https://florentbr.github.io/SeleniumBasic/

◇Seleniumを介さずに同様のことを行うことも可能ではあります。
(その分のコードを作成する必要がありますが・・)
https://qiita.com/uezo/items/66e20b064ffd5f239b9a
    • good
    • 0
この回答へのお礼

お忙しいなかご返信いただきありがとうございます。
また、URLまで載せていただき有難いです。

頂いた、URL
SeleniumBasic
等のサイトを拝見しましたが、少し私には難しい内容のようでした。

DeeplをIEではなくgoogleを介して反映させること等はできますでしょうか。

お礼日時:2022/01/26 04:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!