非プログラマーでもできる!業務の自動化

【VBAマクロダウンロード】Excel関数でセルを自動翻訳|GoogleTranslate関数をMicrosoft Officeで利用する方法

当ページのリンクの一部に広告が含まれています。
ExcelにGoogleTranslate関数を実装する方法

課題・悩み「翻訳できるExcel関数を知りたい」

解決策「Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法」を解説

「Excelでセル内の英文を日本語に翻訳したい」

Googleスプレッドシートには【GoogleTranslate関数】が実装されており、セルの値を自動翻訳できる関数があります。

しかし、Microsoft OfficeのExcelにはセルを自動翻訳する関数はありません。

そこで、ExcelのVBAマクロの機能を使って、Microsoft OfficeのExcelで【セルの英文を日本語に自動翻訳できるGoogleTranslate関数を利用できる】ようにしました。

Excelでセルを自動翻訳できるGoogle Translate関数を実装する方法を解説しています。

GoogleTranslate関数を実装したExcelファイルを配布中。

以下のボタンよりダウンロードください。

目次

GoogleTranslate関数Excelファイルの使い方

ダウンロードできる【GoogleTranslate関数のExcelファイル】の使い方は以下の通りです。

GoogleTranslate関数Excelファイルの使い方

  • マクロの実行の許可
  • GoogleTranslate関数を入力

マクロの実行の許可

Excelファイルを開いたら、マクロの実行を許可してください。

GoogleTranslate関数を入力

翻訳結果を表示させたいセルに【GoogleTranslate】関数を入力してください。

英語を日本語に翻訳する

英語を日本語に翻訳したい場合は、以下のように入力してください。

=GoogleTranslate(B1, "ja", "en")

日本語を英語に翻訳する

日本語を英語に翻訳したい場合は、以下のように入力してください。

=GoogleTranslate(B1, "en", "jp")

セルを翻訳するのに必要な時間

今回Excelに実装したGoogleTranslate関数の翻訳にかかる時間は1つのセルあたり0.5~1.0秒。

そのため、大量のセルでGoogleTranslate関数を使う場合は処理に時間がかかる可能性があるため、ご注意ください。

セルを翻訳するのに必要な時間

  • Visual Basic Editorの呼び出し
  • 参照設定
  • Microsoft HTML Object Libraryをチェック

ExcelにGoogleTranslate関数を実装する方法

ExcelにGoogleTranslate関数の実装する方法は以下の通りです。

ExcelにGoogleTranslate関数を実装する方法

  • ExcelでGoogleTranslate関数を利用するVBAマクロのコードの追加
  • 【Microsoft HTML Object Library】の追加
  • Excel関数の利用

ExcelでGoogleTranslate関数を利用するVBAマクロのコードの追加

Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法ExcelでGoogleTranslate関数を利用するVBAマクロのコードの追加の画像

Excelの標準モジュールに、以下の【ExcelでGoogleTranslate関数を利用する】VBAマクロのコードを記述します。

Option Explicit

Public Function GoogleTranslate(rng As Range, translateFrom As String, translateTo As String) As String
    '変数設定
    Dim param As String, url As String
    Dim objHTTP As Object, oHtml As Object
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    
    'セルの値を取得
    param = rng.Value
    
    'HTTPリクエストのURL設定
    url = "https://translate.google.pl/m?hl=" & translateTo & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & EncodeURL(param)
    
    'HTTPリクエスト
    objHTTP.Open "GET", url, False
    objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    objHTTP.send ("")
    
    'HTTPリクエストのレスポンステキストを取得
    Set oHtml = CreateObject("htmlfile")
    oHtml.body.innerHTML = objHTTP.responseText
    
    '翻訳結果を取得
    Dim transtext As String
    transtext = oHtml.getElementsByClassName("result-container")(0).innerText
    
    '翻訳結果があればClean関数を実行、なければエラー出力
    If transtext <> "" Then
        GoogleTranslate = Clean(transtext)
    Else
        GoogleTranslate = CVErr(xlErrValue)
    End If
End Function

Function ConvertToGet(str As String)
    str = Replace(str, " ", "+")
    str = Replace(str, vbNewLine, "+")
    str = Replace(str, "(", "%28")
    str = Replace(str, ")", "%29")
    ConvertToGet = str
End Function

Function Clean(str As String)
    str = Replace(str, """", """")
    str = Replace(str, "%2C", ",")
    str = Replace(str, "'", "'")
    Clean = str
End Function

Function EncodeURL(ByVal str As String) As String
    EncodeURL = Application.WorksheetFunction.EncodeURL(str)
End Function

【Microsoft HTML Object Library】の追加

次に、Microsoft HTML Object Libraryの追加を行います。

【Microsoft HTML Object Library】の追加

  • Visual Basic Editorの呼び出し
  • 参照設定
  • Microsoft HTML Object Libraryをチェック
  • 英語を日本語に翻訳する
  • 日本語を英語に翻訳する

Visual Basic Editorの呼び出し

Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法Visual Basic Editorの呼び出しの画像

【Alt】→【F11】または【開発】→【Visual Basic】で Visual Basic Editor(VBE:VBAの編集画面)を呼び出します。

参照設定

Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法参照設定の画像

【ツール】→【参照設定】をクリックします。

Microsoft HTML Object Libraryをチェック

Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法Microsoft HTML Object Libraryをチェックの画像

【参照設定】のダイアログから【Microsoft HTML Object Library】を探し、チェックを入れます。

Excel関数の利用

Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法Excel関数の利用の画像

実装したGoogleTranslate関数を利用します。

「=GoogleTranslate(セル, “ja”, “en”)」と「=GoogleTranslate(セル, “en”, “jp”)」の関数でセルの自動翻訳ができます。

Excel関数の利用

  • 英語を日本語に翻訳する
  • 日本語を英語に翻訳する

英語を日本語に翻訳する

Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法英語を日本語に翻訳するの画像

以下の関数を翻訳した文章を表示させたいセルに入力してください。

=GoogleTranslate(B1, "ja", "en")

日本語を英語に翻訳する

Excelでスプレッドシートの機能であるGoogle翻訳の関数(GoogleTranslate関数)を使用する方法日本語を英語に翻訳するの画像

以下の関数を翻訳した文章を表示させたいセルに入力してください。

=GoogleTranslate(B1, "en", "jp")

ExcelにGoogleTranslate関数を実装する方法のQ&A

Excelの翻訳機能を使って、外国語のテキストを自動翻訳する方法はありますか?

Excel翻訳では指定したセルのみ翻訳が可能です。 そのため自動翻訳をするには、Excel VBAのマクロ機能を用いる必要があります。 Google翻訳ができるExcelファイルは「#GoogleTranslate関数Excelファイルの使い方」よりダウンロードください。

Excelの関数を使ってGoogle翻訳を実装する方法はありますか?

Excelの標準機能には、Google翻訳ができる関数は実装されていません。 そのため、ExcelのVBAマクロを用いてGoogle翻訳を実装する必要があります。 詳しくは「#GoogleTranslate関数Excelファイルの使い方」をご覧ください。

Excelで英文を自動翻訳するための関数について知りたいです。

Excel関数で英文を自動翻訳するには、Excel VBAマクロで自動翻訳する関数を実装する必要があります。 詳しくは「#ExcelにGoogleTranslate関数を実装する方法」をご覧ください。

ExcelでGoogleTranslate関数を利用するVBAマクロのコードの解説

このVBAコードは、Excelのセルに入力されたテキストをGoogle Translateを使用して翻訳するカスタム関数GoogleTranslateを提供します。この関数は、指定された言語から別の言語にテキストを翻訳します。また、URLエンコードやテキストのクリーニングなどの補助関数も含まれています。

Option Explicit

Public Function GoogleTranslate(rng As Range, translateFrom As String, translateTo As String) As String
    '変数設定
    Dim param As String, url As String
    Dim objHTTP As Object, oHtml As Object
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    
    'セルの値を取得
    param = rng.Value
    
    'HTTPリクエストのURL設定
    url = "https://translate.google.pl/m?hl=" & translateTo & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & EncodeURL(param)
    
    'HTTPリクエスト
    objHTTP.Open "GET", url, False
    objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    objHTTP.send ("")
    
    'HTTPリクエストのレスポンステキストを取得
    Set oHtml = CreateObject("htmlfile")
    oHtml.body.innerHTML = objHTTP.responseText
    
    '翻訳結果を取得
    Dim transtext As String
    transtext = oHtml.getElementsByClassName("result-container")(0).innerText
    
    '翻訳結果があればClean関数を実行、なければエラー出力
    If transtext <> "" Then
        GoogleTranslate = Clean(transtext)
    Else
        GoogleTranslate = CVErr(xlErrValue)
    End If
End Function

Function ConvertToGet(str As String)
    str = Replace(str, " ", "+")
    str = Replace(str, vbNewLine, "+")
    str = Replace(str, "(", "%28")
    str = Replace(str, ")", "%29")
    ConvertToGet = str
End Function

Function Clean(str As String)
    str = Replace(str, """", """")
    str = Replace(str, "%2C", ",")
    str = Replace(str, "'", "'")
    Clean = str
End Function

Function EncodeURL(ByVal str As String) As String
    EncodeURL = Application.WorksheetFunction.EncodeURL(str)
End Function

ExcelでGoogleTranslate関数を利用するVBAマクロのコードの解説

  • コード実行時の注意点
  • コードを実行するために必要な環境

コード実行時の注意点

このコードは、外部のWebサービス(Google Translate)にアクセスして翻訳を行うため、大量のデータを翻訳する場合や、インターネット接続が不安定な場合は処理に時間がかかる可能性があります。

コード実行時の注意点

  • Google翻訳関数の定義
  • HTTPリクエストの設定
  • 翻訳結果の取得
  • URLエンコード関数

GoogleがAPIの仕様を変更すると、このコードが正常に動作しなくなる可能性があります。

コードを実行するために必要な環境

VBAエディタの「ツール」メニューから「参照設定」を選択し、Microsoft HTML Object Libraryを追加する必要があります。

コードを実行するために必要な環境

  • Google翻訳関数の定義
  • HTTPリクエストの設定
  • 翻訳結果の取得
  • URLエンコード関数
  • テキストクリーニング関数

各処理のコードの解説

各処理のコードの解説

  • Google翻訳関数の定義
  • HTTPリクエストの設定
  • 翻訳結果の取得
  • URLエンコード関数
  • テキストクリーニング関数

Google翻訳関数の定義

Google Translateを使用してテキストを翻訳する主要な関数です。

Public Function GoogleTranslate(rng As Range, translateFrom As String, translateTo As String) As String
...
End Function

HTTPリクエストの設定

Google TranslateのURLを設定し、HTTPリクエストを送信して翻訳結果を取得します。

Dim objHTTP As Object
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
url = "https://translate.google.pl/m?hl=" & translateTo & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & EncodeURL(param)
objHTTP.Open "GET", url, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")

翻訳結果の取得

HTTPレスポンスから翻訳結果を抽出します。

Set oHtml = CreateObject("htmlfile")
oHtml.body.innerHTML = objHTTP.responseText
transtext = oHtml.getElementsByClassName("result-container")(0).innerText

URLエンコード関数

テキストをURLエンコードする補助関数です。

Function EncodeURL(ByVal str As String) As String
EncodeURL = Application.WorksheetFunction.EncodeURL(str)
End Function

テキストクリーニング関数

特定の文字を置換してテキストをクリーニングする補助関数です。

Function Clean(str As String)
str = Replace(str, """", """")
str = Replace(str, "%2C", ",")
str = Replace(str, "'", "'")
Clean = str
End Function

まとめ:ExcelでGoogle翻訳関数を利用して仕事の時短

ExcelでDeepLの翻訳を利用したい方は以下の投稿をご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次