I have a Google Apps Script that generates 15 to 20 ellipses in specific places on a slide. I have not been able to find how to collect the generated ellipses into a group programmatically. Any insight would be most appreciated.
I have researched the Google Apps Script documentation but have not been able to find a workable solution.
Here is the code I am using:
function createColorCodeLabelsSlide() {
var objSheetFile = retrieveFileObject(strSheetsFileName);
var ss = SpreadsheetApp.open(objSheetFile);
var sheet = ss.getSheetByName(strTargetSheetName);
var data = sheet.getDataRange().getValues();
var myPres = SlidesApp.getActivePresentation();
var newSlide = myPres.appendSlide();
for (var i=1; i < data.length; i++) {
var colorCode = data[i][11];
var myNewShape = newSlide.insertShape(SlidesApp.ShapeType.ELLIPSE,data[i][3],data[i][2],16,16);
myNewShape
.getText()
.setText(colorCode);
myNewShape
.getText()
.getTextStyle()
.setFontFamily("Arial")
.setFontSize(12);
myNewShape
.getText()
.getParagraphStyle()
.setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
myNewShape
.getFill()
.setSolidFill(255,255,255);
}
}
I believe your goal is as follows.
In this case, how about modifying your script as follows.
function createColorCodeLabelsSlide() {
var objSheetFile = retrieveFileObject(strSheetsFileName);
var ss = SpreadsheetApp.open(objSheetFile);
var sheet = ss.getSheetByName(strTargetSheetName);
var data = sheet.getDataRange().getValues();
var myPres = SlidesApp.getActivePresentation();
var newSlide = myPres.appendSlide();
var shapes = [];
for (var i = 1; i < data.length; i++) {
var colorCode = data[i][11];
var myNewShape = newSlide.insertShape(SlidesApp.ShapeType.ELLIPSE, data[i][3], data[i][2], 16, 16);
myNewShape.getText().setText(colorCode);
myNewShape.getText().getTextStyle().setFontFamily("Arial").setFontSize(12);
myNewShape.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
myNewShape.getFill().setSolidFill(255, 255, 255);
shapes.push(myNewShape);
}
newSlide.group(shapes);
}
myNewShape
are grouped.