広告

【GAS】Web会議用の背景画像をGoogleスライドで作る

Googleスライドで、Zoomなどの背景画像をスライドで作り、jpg画像で保存するコードをGoogleAppsScriptで作ります。

GASで名刺情報を入れる

まずはGASに入力したい「氏名やローマ字、会社名、QRコード(URL)」情報を設定します。氏名やローマ字、会社名は入力したい内容を入れればOKですが、QRコードを生成するURLはエンコードが必要です。QRコードに設定したいURLのエンコードは「URLエンコード・デコード」でやりましょう。

  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // 漢字の氏名
  const shape = slide.insertTextBox("田中太郎",24,36,240,50);
  const shapeText = shape.getText().getTextStyle();
  shapeText.setFontSize(38).setBold(true);
  // ローマ字
  const huriganaShape = slide.insertTextBox("TANAKA TARO",24,84,120,25);
  const huriganashapeText = huriganaShape.getText().getTextStyle();
  huriganashapeText.setFontSize(14).setBold(true);
  // 会社名
  const companyShape = slide.insertTextBox("株式会社xxxxxx",24,112,120,25);
  const companyshapeText = companyShape.getText().getTextStyle();
  companyshapeText.setFontSize(14).setBold(true);

  // QRコード
  let qrurl = 'https://chart.googleapis.com/chart?chs=100x100&cht=qr&chl=https%3A%2F%2Fwww.xxx.co.jp%2F';
  let option = {
      method: "get",
      muteHttpExceptions: true
    };
  let qrblob = UrlFetchApp.fetch(qrurl, option).getBlob();
  const qrShape = slide.insertImage(qrblob,600,24,100,100);

この時点でGoogleスライドには以下のスライドが生成されます。

GASのプログラミングの記述は、Googleスライドのメニューバーから「拡張機能→AppsScript」を開いた上で行うのが前提です。

作ったスライドを画像で保存する

作ったスライドをGoogleドライブに保存しましょう。Googleドライブの保存先は任意のフォルダで問題ありませんが、GoogleドライブのフォルダIDを指定するようにしましょう。

  // スライドを画像で保存する
  const presentation_id = SlidesApp.getActivePresentation().getId();
  const page_id = SlidesApp.getActivePresentation().getSlides()[0].getObjectId()
  // URLを使ってスライドを画像に変換する
  const url = "https://docs.google.com/presentation/d/" + presentation_id + "/export/" + "jpeg" + "?id=" + presentation_id + "&pageid=" +page_id;
  const options = {
    method: "get",
    headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
    muteHttpExceptions: true
  };
  const res = UrlFetchApp.fetch(url, options);
  const folder = DriveApp.getFolderById("xxxxxxxxxxxxx")
  const prs = SlidesApp.openById(presentation_id);
  folder.createFile(res.getBlob()).setName(prs.getName() + ".jpg");

もっと作成を効率化したい場合

このプログラミングを発展させて作業を効率化したいと考えられるケースは、所属事業部の人数分の背景スライドを一気に作成するケースではないでしょうか。例えば、スプレッドシートに人数分の氏名などの情報がリストに記載されていれば、まとめて作ることができますね。