前提・実現したいこと
Googleスプレッドシートで複数のシートを使用しています。
現在アクティブなシートにボタンを設置して押すと、行が追加され、別シートからコピーされた内容をペーストするように作りたいと思っています。
ボタンにスクリプトを追加するのはクリアしています。
シート名をGASの記述で書いていくとなると、各シートでシート名の変更が必要で、スクリプトの数をシートの数必要になってしまいます。
現在選択しているシートに適用するような記述は可能でしょうか?(シート数が100以上あると100個Function必要になってしまうため)
理想としては、1つのFunctionで各シートのボタンを押すと行が追加される形で行えるとありがたいです。
(ソースコードでの「テスト太郎」が次のシート名だと「テストはな子」など名前が代わっていく)
発生している問題・エラーメッセージ
なし
該当のソースコード
Goole
1function test() { 2 var spreadsheet = SpreadsheetApp.getActive(); 3 spreadsheet.getRange('3:17').activate(); 4 spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 15); 5 spreadsheet.getActiveRange().offset(0, 0, 15, spreadsheet.getActiveRange().getNumColumns()).activate(); 6 spreadsheet.getRange('2:17').activate(); 7 spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 16); 8 spreadsheet.getActiveRange().offset(0, 0, 16, spreadsheet.getActiveRange().getNumColumns()).activate(); 9 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('コピー元'), true); 10 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('テスト太郎'), true); 11 spreadsheet.getRange('\'コピー元\'!2:17').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); 12 spreadsheet.getRange('2:16').activate(); 13 spreadsheet.getActiveSheet().setRowHeights(2, 15, 40); 14}; 15
試したこと
現在のシートの設定方法を検索しましたがわかりませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー