2021/10/17に更新

【GASで効率化】指定した種類のスライドオブジェクトをまとめて消す

スライド小技実験的

現在アクティブなスライドに存在する「特定の種類(シェイプ、線、画像など)のオブジェクト」をまとめて消すGoogle Apps Scriptです。種類はポップアップウィンドウで指定します。背面にまぎれてしまったゴミの削除などにどうぞ。

こんな悩みを解決します


  • スライドにあるシェイプ、線、画像などをまとめて消したいが、1つずつ選択していくのが大変
  • 背面に隠れているオブジェクトを探すのが大変

用意するもの


特にありません。今お使いのスライドに組み込めます。

このスクリプトで出来ること


  • 現在のスライドに存在する、指定した種類のオブジェクトをまとめて消すことができます。
  • 種類はポップアップウィンドウで入力します。指定出来るのは以下の種類です。
  • SHAPE : 四角形などのシェイプ
  • IMAGE : 貼り付けた画像
  • LINE : 線
  • TABLE : 表
  • VIDEO : 動画
  • SHEETS_CHART : スプレッドシートのグラフ
  • WORD_ART : ワードアート

使い方


1.スクリプトを実行

上部のメニューから「指定したオブジェクトタイプをすべて消去」を実行します。

2.消したいオブジェクトの種類を入力

ポップアップウィンドウで、消したいオブジェクトの種類を入力します。
大文字でも小文字でも構いません。
OKを押すと指定したタイプがすべて消されるはずです。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00014/index.html
 */

function onOpen() {
  var ui = SlidesApp.getUi();

  // メニューの表示名
  var menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('指定したオブジェクトタイプを全て消去', 'deleteByObjectType');

  // メニューを画面に追加する
  menu.addToUi();
}


function deleteByObjectType() {
  // 開いているプレゼンテーションを取得
  const presentation = SlidesApp.getActivePresentation();

  // アクティブなスライドの要素を取得
  const active_slide = presentation.getSelection().getCurrentPage().asSlide();
  const elements = active_slide.getPageElements();

  // 対象のオブジェクトタイプをユーザ入力させる
  let ui = SlidesApp.getUi();
  let response = ui.prompt('消したいオブジェクトのタイプを入力してください', 'SHAPE/IMAGE/LINE/TABLE/VIDEO/SHEETS_CHART/WORD_ART', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたら or 空欄の場合は何もせず終了
  if(response.getSelectedButton() == ui.Button.CANCEL || response.getResponseText() == ''){
    return;
  }

  // オブジェクトの数だけループ。入力されたタイプと一致したものは消していく
  for (var i = 0; i < elements.length; i++) {
    let element_type = elements[i].getPageElementType().toString();

    // マッチパターンに変数を使いたいので正規表現を作成
    regexp = new RegExp(response.getResponseText(), 'i');
    
    if (element_type.match(regexp)) {
      elements[i].remove();
    }
  }
}

関連するアプリ


タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp