Apps Script公式リファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard

2024年4月18日木曜日

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと


GoogleスプレッドシートA列にある複数の値を取得して
Googleスライドに渡して
図形オブジェクトのテキストとして追加したい



① スプレッドシートのA列に値を入れておく
② Code.gsのinsertNewShape()を実行すると、スライドの左上に図形が重なって追加される
③ 図形を選択して手動で動かして好きなように配置し直す

Google Apps Scriptでスライドのページを指定して複数の図形を追加したい(Google Apps Script) では、values をコード内に書きましたが、スプレッドシートから値を持って来たくて書いたコードです。



Code.gs
const sheetUrl = "https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0";
const sheet = SpreadsheetApp.openByUrl(sheetUrl).getSheets()[0];
const values = sheet.getDataRange().getValues().flat();

const slideUrl = "https://docs.google.com/presentation/d/SLIDE_ID/edit#slide=id.p";
const pageId = slideUrl.split("slide=id.")[1];
const slide = SlidesApp.openByUrl(slideUrl);
const pages = slide.getSlides();
const pageIndex = findPageIndex(pages, pageId);
const page = slide.getSlides()[pageIndex];

function insertNewShape() {
for(let i = 0; i < values.length; i++) {
const rect = page.insertShape(SlidesApp.ShapeType.RECTANGLE)
.setWidth(120)
.setHeight(30)
.setTop(0)
.setLeft(0);
rect.getText().setText(values[i])
.getTextStyle().setFontSize(12);
rect.getFill().setSolidFill("#C9DAF8");
}
}

function findPageIndex(pages, pageId) {
let pageIndex;
for(let i = 0; i < pages.length; i++) {
if(pages[i].getObjectId() === pageId) {
pageIndex = i;
}
}
return pageIndex;
}



Reference


Latest post

Google Slidesで現在選択している表に値を入れたい3 - Insert values into the active table3

Google Slidesで現在選択している表に値を入れたい2 - Insert values into the active table2 上記のリンク先では、値の数に応じて行を追加しました。 In the linked article above, rows were add...