2022/04/03に更新

【GASで便利に】選択したオブジェクトを全スライドにコピーする

スライド小技

指定したオブジェクトを、全スライドにコピーしてくれるGoogle Apps Scriptです。全ページに注釈を入れたくなったときなどに役立つかもしれません。

こんな悩みを解決します


  • Googleスライドの全ページに、文字を追加したくなった・・・けどスライドが大量にあって大変!

用意するもの


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

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


  • 選択中のオブジェクトをすべてのスライドに一発でコピーすることができます。
  • テキスト、画像、グループ化したものなど、なんでもコピーできます(たぶん)。

使い方


1.オブジェクトの選択

適当なスライドを用意しました。
このファイルが古い版になってしまい、新しいファイルへのリンクを全スライドに載せたい・・・というシナリオです。
(普通はGoogleドライブの「版の管理」機能を使うと思いますが)

コピーしたいオブジェクトを1つ選択します。

2.スクリプトの実行

上のメニューに有る「スクリプト実行」から「選択中のオブジェクトを全スライドにコピーする」を実行します。

3.実行の確認

コピーを本当に実行してもよいのか、確認画面が出ます。問題なければOKを押します。
誤って実行してしまっても「元に戻す」で取り消しが可能です。

4.結果の確認

全てのスライドにお知らせのテキストオブジェクトがコピーされました!

5.注意点

コピーできるのは1つのオブジェクトだけです。もし複数のオブジェクトをコピーしたい場合はグループ化してからスクリプトを実行してください。

また、「スライド内オブジェクト」しかコピーできません。左ペインのスライドを選択中だったり、テキストの編集中にスクリプトを実行すると「スライド内のオブジェクトを1つだけ選択してから実行してください」というエラーメッセージが出てスクリプトが終了します。

スクリプト


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

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

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

  // メニューに追加するボタン
  menu.addItem('選択中のオブジェクトを全スライドにコピーする', 'copy_object_to_all_slides');

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


function copy_object_to_all_slides() {

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

  // 選択中のオブジェクトを取得
  var selection = presentation.getSelection();

  // 選択されているオブジェクトのタイプを選択
  var selectionType = selection.getSelectionType();

  // スライド内オブジェクトでなければ、エラー
  if (selectionType != SlidesApp.SelectionType.PAGE_ELEMENT) {
    SlidesApp.getUi().alert('スライド内のオブジェクトを1つだけ選択してから実行してください');
    return;
  }

  // 実行してもよいか確認する
  let ui = SlidesApp.getUi();
  let response = ui.alert('選択中のオブジェクトを全てのスライドにコピーします。\nよろしいですか?', ui.ButtonSet.OK_CANCEL);

  // CANCELが押されたら処理中止
  if (response == ui.Button.CANCEL) {
    return;
  }

  // プレゼンテーションの全スライドを取得
  const slides = presentation.getSlides();

  // アクティブなスライドのオブジェクトIDを取得
  const current_slide_id = selection.getCurrentPage().getObjectId();

  // スライド1枚ずつループ処理
  for (let i = 0; i < slides.length; i++) {

    // スライドのオブジェクトIDを取得する
    let slide_id = slides[i].getObjectId();

    // スライドのオブジェクトIDがアクティブなスライド(=コピー元オブジェクトが存在する)と一致した場合は、
    // コピーする必要がないのでスキップする
    if(current_slide_id == slide_id){
      continue;
    }

    // オブジェクトのコピーを実施
    slides[i].insertPageElement(selection.getPageElementRange().getPageElements()[0]);

  }
}

関連するアプリ


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

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

【GASで効率化】指定した種類のスライドオブジェクトをすべて選択する

現在アクティブなスライドに存在する「特定の種類(シェイプ、線、画像など)のオブジェクト」をすべて選択するGoogle Apps Scriptです。種類はポップアップウィンドウで指定します。線など選択が面倒なオブジェクトをすべて選択&書式設定などが可能になります。

【GASで時短】選択しているオブジェクトを指定回数コピーする

選択しているオブジェクトを、指定した数だけコピーするGoogle Apps Scriptです。大量に同じオブジェクトを作りたいときに便利です。

【GASで時短】フローチャート記号を簡単に作る

フローチャートでよく使う記号を作成するGoogle Apps Scriptです。記号の挿入はクリック数が多いので少しでも短縮するために作ってみました。

【GASで時短】すべてのシェイプのフォントを統一する

スライド内の全ページ、全シェイプのフォントを統一するGoogle Apps Scriptです。フォントがバラバラでお困りのときに。

タグ一覧

最新のアプリ

人気のアプリ

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