How about following script?
function sample() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var summarysheet = ss.getSheetByName('Put name of summary sheet name');
var names = summarysheet.getRange('a4:a38').getValues();
names.forEach(function(e, i){
ss.getSheets()[i + 1].setName(e);
});
}
I thought that it is very important the correspondence of names of summary sheet and each sheet. So conditions to use this sample script is as follows.
If you change the arrangement of sheets, the correspondence of names of summary sheet and each sheet cannot be done.
How do you think about the correspondence of names of summary sheet and number of sheets? Now, the number of sheets is 35 + (a summary sheet). This is same to (names of summary sheet) + 1. If you want to insert new sheets using script, please tell me.
It cannot make sheets with same sheet name. So if there are same student names, it is necessary to change a bit.
If you have a script you made for your question, can I ask you about it?