ExcelのVBAでDeepL翻訳を使って英文を日本語に翻訳できますか?

英会話のポタル
英会話のポタル
ExcelのVBAでDeepL翻訳を使って英文を日本語に翻訳する方法はありますか?

結論:
可能です。

箇条書きメモ

- ExcelのVBAでDeepL翻訳を使って翻訳可能
- Internet Explorerを利用する
- URLエンコードが必要
- 翻訳結果をB列に表示
- 空白チェックが重要

- VBAのコードを使うことで、A列の英文をB列に日本語訳として表示できる
- VBAの知識が少なくても実行可能
- 翻訳結果が空白でないか確認するループが含まれている
- Internet Explorerの操作が必要なので、環境によっては注意が必要
- コードを実行することで、手動で翻訳する手間が省ける

- 自動化の利点を活かせる
- 翻訳精度はDeepLに依存するため、結果の確認が必要
- VBAの学習にも役立つ内容である

ExcelのVBAでDeepL翻訳を使って英文を日本語に翻訳する方法

ExcelのVBAを使って、英文を日本語に翻訳することは可能です。特に、DeepL翻訳というサイトを利用することで、簡単に翻訳を行うことができます。

VBAはあまり触ったことがない方でも、C♯の経験があるなら、基本的なプログラミングの考え方は理解できているはずです。

ここでは、ExcelのA列にある英文をB列に日本語訳として表示する方法を紹介します。

VBAコードの解説

以下に示すのは、DeepL翻訳を利用して翻訳を行うVBAのサンプルコードです。

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

このコードは、以下の手順で動作します。

手順1: Internet Explorerのオブジェクトを作成

最初に、Internet Explorerのオブジェクトを作成します。

これにより、VBAからWebページを操作することが可能になります。

手順2: A列の最終行を取得

次に、A列の最終行を取得します。

これにより、翻訳する英文の数を把握することができます。

手順3: 翻訳処理の実行

Forループを使って、A列の各行を順に処理します。

もしA列のセルが空でなければ、DeepL翻訳のURLに英文をエンコードしてアクセスします。

ここで、WorksheetFunction.EncodeURLを使って、URLに適した形式に変換しています。

手順4: 翻訳結果の取得

翻訳が完了するまで待機し、結果を取得します。

取得した翻訳結果は、B列に表示されます。

手順5: Internet Explorerの終了

全ての翻訳が完了したら、Internet Explorerを終了します。

これで、A列にある英文がB列に日本語訳として表示されることになります。

注意点

この方法を使用する際には、いくつかの注意点があります。

まず、Internet Explorerを使用するため、ブラウザの設定やセキュリティポリシーによっては、正常に動作しない場合があります。

また、DeepL翻訳の利用規約に従って、商業利用や大量の翻訳を行う場合は、適切なライセンスを取得する必要があります。

さらに、VBAの実行環境によっては、セキュリティ設定が影響することもありますので、事前に確認しておくことが重要です。

まとめ

ExcelのVBAを使ってDeepL翻訳を利用することで、英文を日本語に翻訳することができます。

この方法は、特に大量のテキストを翻訳する際に非常に便利です。

VBAの基本的な知識があれば、簡単に実装できるので、ぜひ試してみてください。

翻訳結果の精度は高く、日常的な業務に役立つことでしょう。

このように、VBAを活用することで、業務の効率化を図ることができます。

Yes