初心者でも安心!GASでスライドの要素を効果的に削除する方法

僕、プレゼン資料を作っているんですけど、GASを使ってGoogleスライドの要素を削除する方法を知りたいんです。でも、どうやればいいのかさっぱりで…
猫男
猫男
catman
catman
よし、catmanが「GASでのスライド要素削除」について伝授しよう。初めてでも簡単にできるさ。

GASを使ってGoogleスライドの要素を削除する準備

GASではGoogleスライド内のテキストボックスや画像などの要素を操作できる。まずは基本の準備について解説しよう。

GASプロジェクトの作成

Googleドライブから新しいスクリプトプロジェクトを作成する手順について。

1. Googleドライブを開く。

2. [新規]ボタンをクリックし、[その他]から[Google Apps Script]を選ぶ。

3. 新しいスクリプトエディターが開く。

4. プロジェクトに適当な名前をつけて保存しよう。

スライドプレゼンテーションのID取得

操作したいプレゼンテーションのIDが必要だ。

IDは、GoogleスライドのURLに含まれている。ドキュメントID部分をコピーする。

例: https://docs.google.com/presentation/d/ドキュメントID/edit

GASでスライド要素を削除するコード構築

次に、GASコードを書いてスライドの要素を削除してみよう。

スライド要素の削除コード例

以下のスクリプトは特定のスライド上の最初の要素を削除する例だ。



function deleteFirstElementInSlide() {
  var presentationId = '<スライドのドキュメントID>';
  var slide = SlidesApp.openById(presentationId).getSlides()[0];
  var pageElements = slide.getPageElements();
  
  if (pageElements.length > 0) {
    pageElements[0].remove();
  }
}

1. SlidesApp.openById()でプレゼンテーションを開く。

2. getSlides()メソッドでスライドを取得。

3. getPageElements()でスライド内の要素をリストアップ。

4. remove()メソッドで最初の要素を削除。

やった!最初の要素がちゃんと消えました。これならGASでスライドの編集もできるかも!
猫男
猫男
catman
catman
その通り。次に進むステップは、複数の要素を削除する方法や、特定の条件で要素を選ぶ方法さ。続けるぞ。

GASで特定条件でスライド要素を削除

特定の要素を見つけて削除する方法をさらに探っていこう。

条件に応じた要素の削除

ある条件に基づいて要素を削除するコード例だ。



function deleteElementsWithText(conditionText) {
  var presentationId = '<スライドのドキュメントID>';
  var slides = SlidesApp.openById(presentationId).getSlides();
  
  slides.forEach(function(slide) {
    var pageElements = slide.getPageElements();
    pageElements.forEach(function(element) {
      if (element.asShape().getText().asString().includes(conditionText)) {
        element.remove();
      }
    });
  });
}

1. forEach()で全スライド、スライド内全要素をループ。

2. 要素がテキスト型であれば、asShape().getText().asString()でテキストを取り出す。

3. includes()を使い削除条件に一致するか確認。

練習問題

練習問題: 指定したスライド内の全ての画像を削除するスクリプトを書いてみよう。

  

解答・解説



function deleteAllImagesInSlide(slideIndex) {
  var presentationId = '<スライドのドキュメントID>';
  var slide = SlidesApp.openById(presentationId).getSlides()[slideIndex];
  var pageElements = slide.getPageElements();
  
  pageElements.forEach(function(element) {
    if (element.getPageElementType() === SlidesApp.PageElementType.IMAGE) {
      element.remove();
    }
  });
}

このコードは指定したインデックスのスライドから全ての画像要素を削除する。

1. getPageElementType()を使い、要素がIMAGEか確認。

2. 一致する場合、remove()メソッドで要素を削除。

すごい!これでスライドのメンテナンスが非常に楽になりますね。ありがとうございました、catman!
猫男
猫男
catman
catman
君が役に立つ道具を覚えたようで何よりさ。GASを使いこなして、どんどんスマートに仕事を進めるんだ!