LoginSignup
1
2

More than 3 years have passed since last update.

【できるけどおすすめはしない】GASで2言語を相互に翻訳しながらGoogleスプレッドシートを同時に編集する方法

Last updated at Posted at 2019-06-30

背景

英語話者と同時にスプレッドシートを編集する必要があった際に、それぞれの言語で表示・編集できるといいなーと考えて実装してみました。

実装

スプレッドシートのツールというタブから、スクリプトエディタを開いて以下のコードを書き込みます。それだけです。

スクリプトエディタの使い方など、詳細については参考にしたリンクを貼っておきます。

上記のページと異なるのは、1シート分を翻訳することを目的として、日本語と英語のシートをそれぞれ分けて準備したところです。書き込んだタイミングで翻訳されます。

コード


// onEdit()は編集されたことをトリガーとする関数
function onEdit(){
  // シートの取得
  var sheet_ja = SpreadsheetApp.getActive().getSheetByName('日本語のシート名');
  var sheet_en = SpreadsheetApp.getActive().getSheetByName('英語のシート名');

  // アクティブなセルを取得
  var cell = sheet.getActiveCell();
  var column = cell.getColumn();
  var row = cell.getRow();
  var val = cell.getValue();

  // 日→英
  var set = LanguageApp.translate(val, "ja", "en");
  sheet_en.getRange(row, column).setValue(set);

  // 英→日
  var set2 = LanguageApp.translate(val, "en", "ja");
  sheet_ja.getRange(row, column).setValue(set2);
}

注意点

  • 編集をトリガーとして翻訳が実行されるため、日→英→日のような翻訳が行われることもあり、変な翻訳が表示されることがかなりの頻度であります。
  • そのため、実用性という点では少し課題が残ります。
  • その場合の対策として、日本語のシートであっても適切な英語で表記すると上手く翻訳されることがあります。
  • また、複数行コピーやカットにも対応していないため、都度両方のシートを編集する必要があります。
1
2
1

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
1
2