前提・実現したいこと
カスタマーサポートを対応する際に、日本語で頂いた情報をテンプレで記入したモノを別の言語に翻訳する必要があります。
そのため、テンプレの翻訳コードを作りましたが、処理に大変時間がかかると表示されていましたので、処理速度をアップする方法をご教授いただきたいです。
発生している問題・エラーメッセージ
Method Range.getValue is heavily used by the script. File: TempTranslate_test2 Line: 19
該当のソースコード
GAS
1var SS_ChangeTempLanguage=SpreadsheetApp.openById('リンク先'); 2var Translate_sheet = SS.getSheetByName('対応シート名'); //対応シート名 3var Dict_sheet = SS.getSheetByName('dict'); 4 5var JPTemp_VauleColumn = 6; // テンプレ欄 6var CHTemp_TranslateColumn = 8; // テンプレ翻訳欄 7var ClassficationColumn = 10; // 分類欄 8var CSstatusColumn = 11; // 対応ステータス欄 9 10var JPtempDict_VauleColumn = 1; // 日本語のテンプレ 11var CHtempDict_VauleColumn = 2; // テンプレ対応翻訳 12 13function TempTranslate_Procedure () { 14 var JPTemp_DictVaule = getColumnArrayData_Auto (Dict_sheet, JPtempDict_VauleColumn); 15 var CHTemp_DictVaule = getColumnArrayData_Auto (Dict_sheet, CHtempDict_VauleColumn); 16 var Translate_sheetLastCol=Translate_sheet.getLastRow(); 17 18 for(var c=0;c<Translate_sheetLastCol;c++){ 19 var ClassficationValue=Translate_sheet.getRange(c+2,ClassficationColumn).getValue(); 20 var SetTempCellVaule=Translate_sheet.getRange(c+2,CHTemp_TranslateColumn).getValue(); 21 var CSstatus=Translate_sheet.getRange(c+2,CSstatusColumn).getValue(); 22 if(ClassficationValue=="アカウント紛失" || ClassficationValue=="不具合"||ClassficationValue=="課金関連" ){ //テンプレのある欄のみ処理を行う 23 24 if(SetTempCellVaule=="" && CSstatus=="確認待ち"){ //誤ってデータを上書きしないよう、対応ステータスが確認待ち、かつテンプレ翻訳欄が空欄 25 var JPTempVaule=Translate_sheet.getRange(c+2,JPTemp_VauleColumn).getValue(); 26 var TranslatedTemp=JPTempVaule; 27 28 for (var k = 0; k < JPTemp_DictVaule.length; k++) { 29 TranslatedTemp = TranslatedTemp.replace(JPTemp_DictVaule[k][0], CHTemp_DictVaule[k][0]); 30 } 31 32 Translate_sheet.getRange(c+2,CHTemp_TranslateColumn).setValue(TranslatedTemp); 33 } 34 35 } 36 37 } 38} 39 40function getColumnArrayData_Auto (targetSheet, startColumn) { 41 var lastRow = targetSheet.getLastRow(); 42 var range = targetSheet.getRange(1,startColumn, lastRow,1); 43 var values = range.getDisplayValues(); 44 return values; 45}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/18 03:33