LoginSignup
23
18

More than 1 year has passed since last update.

GoogleスプレッドシートでDeepL翻訳関数を作る

Last updated at Posted at 2021-06-08

Googleスプレッドシートのデフォルトで使えるGOOGLETRANSLATE関数があまりにも精度が悪いので、DeepL関数をGoogle App Scriptで自作しました。

手順

1. DeepL Proアカウント(無料)を作る

DeepLAPIを使うためにDeepLProアカウントを作ります。
https://www.deepl.com/pro#developer

このサイトから「DeepL API Free」を選択して手順に沿って登録します。

※クレジットカードを入力する項目がありますが、Freeプランであれば課金はされません。
※DeepL API Freeだと50万文字/月が上限のようです。(執筆時点)

2. 登録後のAPI認証キーをコピーしておく

登録完了後に認証キーが表示されるのでコピーしておきます。
「XXX~XXXX:fx」というキーです。
マイページ->プランでも見ることができます。

3. Google App Scriptを開く

GoogleスプレッドシートからTool->Script Editorを開きます。

Screen Shot 2021-06-08 at 14.05.24.png

4. DeepL関数を書く

auth_keyのXXXXXは2でコピーした認証キーを入力してください。
今回は英語->日本語の翻訳ですが変えたい場合はja,enの部分を変えて下さい。

deepl.gs
function deepl(text) {
  var response = UrlFetchApp.fetch("https://api-free.deepl.com/v2/translate?auth_key=XXXXX&text="+ text +"&target_lang=ja&source_lang=en");
  var json = response.getContentText(); 
  var data = JSON.parse(json); 
  var result = data.translations[0].text;
  return(result);
}

5.保存して実行

スクリプトエディタで保存した後、Google Sheetでdeepl関数が使えるようになります。
=deepl(翻訳したい日本語または参照セル)という形で使えます。

最後に

Googleスプレッドシートでセンテンス単語帳をを作ってたのですが、GOOGLE TRANSLATE関数があまりにも使えず&プラグインも日本語対応しているものがなく、やっつけで作りました。


追記 (2021.9.3)

Google App Scriptの仕様で、スプレッドシートを読み込むたびに関数が実行されてしまうようです。
今のところ有効な回避策がないようなので、同じファイル内で大量に関数を使用すると月額上限に引っかかりやすくなるので注意してください。

23
18
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
18