LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Saturday, April 16, 2022

Googleスライドで文字色を一気に変更したい


スライドに配置されている図形内の文字色を#434343に一括変更したくて書いたコードです。


前提条件
SLIDE_IDで指定されたスライドのページには一つの図形があり、その図形にはテキストが入力されている



コード.gs
function changeFontColor() {
  const slideUrl = 'https://docs.google.com/presentation/d/SLIDE_ID/edit#slide=id.p';
  const slide = SlidesApp.openByUrl(slideUrl);
  const slides = slide.getSlides();

  const textColor = "#434343";
  const startPage = 0;
  const endpage =  slides.length


  for(let i = startPage; i < endpage; i++) {
    const element = slides[i].getShapes()[0];
    element.getText().getTextStyle().setForegroundColor(textColor);
  }
}



Googleスライドでテキストサイズを一気に変更したい


スライドに配置されている図形内のテキストサイズを24に一括変更したくて書いたコードです。


前提条件
SLIDE_IDで指定されたスライドのページには一つの図形があり、その図形にはテキストが入力されている



コード.gs
function changeFontSize() {
  const slideUrl = 'https://docs.google.com/presentation/d/SLIDE_ID/edit#slide=id.p';
  const slide = SlidesApp.openByUrl(slideUrl);
  const slides = slide.getSlides();

  const fontSize = 24;
  const startPage = 0;
  const endPage = slides.length;

 
  for(let i = startPage; i < endPage; i++) {
    const element = slides[i].getShapes()[0];
    element.getText().getTextStyle().setFontSize(fontSize)
  }
}



Googleスライドにページを追加してテキストの上下左右を中央に揃えたい


Googleスライドのページを自動作成したくて書いたコードです。

こういう二次元の配列があって
 [["はれ", "晴れ", "hare"],["あめ", "雨", "ame"]];


一つの配列をもとに一つのページを作りたい。

やりたいこと
  1. 高さを3等分した図形を配置してその中にテキストを入れたい
  2. ページの背景は白、枠線なし
  3. テキストは中央に揃えたい
  4. 一番上のテキストは下揃えにしたい
  5. 真ん中のテキストは上下も中央に揃えたい
  6. 一番下のテキストは上揃えにしたい
  7. 上中下それぞれのテキストの色とサイズを指定したい



コード.gs
const slideUrl = "https://docs.google.com/presentation/d/SLIDE_ID/edit#slide=id.p";
const textColor = ["#b7b7b7", "#000000", "#b7b7b7"];
const contentAlignment = SlidesApp.ContentAlignment
const fontSize = 60;
const valuesArray = [["はれ", "晴れ", "hare"],["あめ", "雨", "ame"]];

function insertNewPage() {
  const slide = SlidesApp.openByUrl(slideUrl);
  const pageWidth = slide.getPageWidth();
  const pageHight = slide.getPageHeight();
  const height = [0, pageHight/3, (pageHight/3)*2];

   for(let i = 0; i < valuesArray.length; i++) {
     const values = valuesArray[i];
     createPage(slide, pageWidth,pageHight, height, textColor, contentAlignment, values);
  }
}

function createPage(slide, pageWidth, pageHight, height, textColor, contentAlignment, values) {
  const slides = slide.getSlides();
  const newPage = slide.insertSlide(slides.length)
  const position = [contentAlignment.BOTTOM, contentAlignment.MIDDLE, contentAlignment.TOP];

  for(let i = 0; i < values.length; i++) {
    const rect = newPage.insertShape(SlidesApp.ShapeType.RECTANGLE)
    .setWidth(pageWidth)
    .setHeight(pageHight/3)
    .setTop(height[i])
    .setLeft(0);

    rect.getText().setText(values[i])
    .getTextStyle().setFontSize(fontSize).setForegroundColor(textColor[i]);

    rect.getFill().setSolidFill("#FFFFFF");
    rect.getBorder().setTransparent();
    rect.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
    rect.setContentAlignment(position[i]);
  }
}



参考

Editing and styling text

setContentAlignment(contentAlignment)

Enum ContentAlignment 

Enum ParagraphAlignment


Latest post

Extracting data from Google Sheets with regular expressions

Introduction Regular expressions are a powerful tool that can be used to extract data from text.  In Google Sheets, regular expressions ca...