実現したいこと
「TOP」というシートがあります。このシートを同じブック上にコピーして、尚且つシート名は「TOP」のシート上のセルA1と同じ名前にしたいです。A1が「2025」ならコピーしたシートも「2025」にしたいです。
発生している問題・分からないこと
GASは反応しますがシート名がA1と同じ文言にならず「TOPのコピー」となってしまいます。
恐らく
newSheet.setName(name);
newSheet.getRange('A1').setValue(name);
が違うのでしょう。どなたか正しい構文を教えてください。
エラーメッセージ
error
1エラーメッセージはないが、A1と同じ文言にならず「TOPのコピー」となってしまいます。
該当のソースコード
GAS
1function sheetCopy() { 2//スクリプトに紐付いたスプレッドシートを読み込む 3let mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 4//アクティブなシートをコピー対象のシートとして読み込む 5let copySheet = mySpreadsheet.getActiveSheet(); 6//コピー対象シートを同一のスプレッドシートにコピー 7copySheet.copyTo(mySpreadsheet); 8var ss = SpreadsheetApp.getActiveSpreadsheet(); 9var sh = ss.getSheetByName("TOP"); 10function insSheet() { 11var list = sh.getRange(1,1,sh.getLastRow(),1).getValues(); 12for (var i=0; i<list.length; i++) { 13ss.insertSheet(list[i][0].toString()); 14newSheet.setName(name); 15 newSheet.getRange('A1').setValue(name); 16} 17} 18} 19
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
GAS
1function copySheet(){ 2 const sheet = SpreadsheetApp.getActiveSpreadsheet(); //アクティブな状態のスプレッドシート 3 const copiedSheet = sheet.getActiveSheet(); //アクティブな状態のスプレッドシート内のシート 4 5 copiedSheet.copyTo(sheet); //「コピーするシート」をコピー 6 7 newSheet.setName(name); 8 newSheet.getRange('A1').setValue(name); 9} 10
だと17:19:37 エラー
ReferenceError: newSheet is not defined
copySheet @ 無題.gs:7
となります。
補足
特になし

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。