はじめに
こんにちは。新しいPCのセットアップのキーボードの配置になれず、ちょっと苦戦してます、筆者です
Fn
キーとCtrl
キーとPgUp
、PdDn
がまだ慣れません。。
さて、今回はスプレッドシート内がすべて韓国語のシートを日本語に翻訳する機会がありましたので、そのやり方を共有します。
前提
- 韓国語 => 日本語に翻訳する.
- 韓国語のシート名は
ko
. - 日本語のシート名は
ja
. - シート内のセルはセル結合されているものも含む.
方針
- シート「ja」が既に存在する場合を加味しシート「ja」を削除する.
- シート「ko」をコピーしてシート「ja」と名前を付ける.
- 2のデータをすべて取得.
- 3のデータを1つずつ翻訳する.
- 4を元データに置き換える.
スクリプトはこちら↓
const main = () => {
// すでに翻訳する済みのシート「ja」があれば削除する.
SpreadsheetApp
.getActiveSpreadsheet()
.deleteSheet(
SpreadsheetApp
.getActiveSpreadsheet()
.getSheetByName('ja')
)
// 翻訳前のシート「ko」をコピーして「ja」を作成する.
const sheet = SpreadsheetApp
.getActiveSpreadsheet()
.getSheetByName('ko')
.copyTo(SpreadsheetApp.getActiveSpreadsheet())
.setName('ja')
// シート「ja」を1セルずつ翻訳して書き換える.
sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn())
.getValues()
.forEach((r, i) => {
r.forEach((c, j) => {
if (c) {
sheet.getRange(i + 1, j + 1).setValue(LanguageApp.translate(c, 'ko', 'ja'))
Utilities.sleep(1000)
}
})
})
}
おわりに
書いてから気づきました、もしかしたらスプレッドシートのアドオンであるかもしれないことに...。
あればそちらを使った方がいいかもしれません
ただ、ほかの処理に乗せたいとかあるのであれば、GASでやるのはありだと思います。
トリガーとかもあるので
参考になれば幸いです!
それでは!