指定フォルダに入っているすべてのスライドを連結するGoogle Apps Scriptです。課題などをアップロードしてもらった後、1ファイルにまとめたい時などにどうぞ。
あたらしくGoogleスライドを作成し、コンテナバインド型スクリプトとしてコードを登録してください。
サンプルとしてスライドを3個用意しました。
スクリプトを登録したスライドファイルで、メニューにある「スクリプト実行」から「指定したフォルダのスライドすべてを集約する」を実行します。
まとめたいスライドが保存されているフォルダのURLを入力します。
スライド以外のファイルが混在していても問題ありません。
しばらく待つと現在開いているスライドに、各ファイルのスライドが現れます。
テキストだけのスライドはもちろん、画像付きのスライドも問題なくコピーされています。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00103/index.html
*/
function onOpen() {
const ui = SlidesApp.getUi();
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('指定したフォルダのスライドすべてを集約する', 'aggregate_all_slides');
// メニューを画面に追加する
menu.addToUi();
}
function aggregate_all_slides() {
// 開いているプレゼンテーションを取得
const presentation = SlidesApp.getActivePresentation();
// 実行してもよいか確認する
let ui = SlidesApp.getUi();
let response = ui.prompt('GoogleドライブのURLを入力してください','例:https://drive.google.com/drive/folders/****************', ui.ButtonSet.OK_CANCEL);
// CANCELが押されたら処理中止
if (response.getSelectedButton() == ui.Button.CANCEL) {
return;
}
// 入力されたURLを取り出す
const url = response.getResponseText();
// フォルダURLからID部分を取得する
const folder_id = url.replace(/^https:.*folders\//, '');
// フォルダ内のファイルを取得する
const files = DriveApp.getFolderById(folder_id).getFiles();
// ファイルが存在する限り、処理を繰り返す
for (let i = 0; files.hasNext(); i++) {
let file = files.next(); //ファイルを取得
// ファイルがスプレッドシートかどうか判断するために、mimetypeを取得
let mimetype = file.getMimeType();
// スライドのmimetypeは「application/vnd.google-apps.presentation」
if (mimetype.match(/presentation/)) {
// コピー対象のプレゼンテーションを取得する
let target_presentation = SlidesApp.openById(file.getId());
// スライドをすべて取得する
let slides = target_presentation.getSlides();
// スライドの数だけループし、現在開いているプレゼンテーションに追加していく
for(let j = 0; j < slides.length; j++){
presentation.appendSlide(slides[j]);
}
}
}
}
指定したフォルダにあるスプレッドシートをすべて連結するGoogle Apps Scriptです。生徒・受講者の課題をチェックするときに1ファイルずつ開くのは面倒で、1つのスプレッドシート(ブック)にまとめたくなったので作りました。
フローチャートでよく使う記号を作成するGoogle Apps Scriptです。記号の挿入はクリック数が多いので少しでも短縮するために作ってみました。
スライド内の全ページ、全シェイプのフォントを統一するGoogle Apps Scriptです。フォントがバラバラでお困りのときに。