初心者でも安心!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で特定条件でスライド要素を削除
特定の要素を見つけて削除する方法をさらに探っていこう。
条件に応じた要素の削除
ある条件に基づいて要素を削除するコード例だ。
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()メソッドで要素を削除。

