仕事の資料作成で、スライドテンプレートを活用している人も多いのではないでしょうか?
しかし、資料作成の度に必要な画像を個別に挿入するのは面倒ですよね。
今回は、Google Apps Script (GAS) を使って、Googleドライブ に保存されている画像をスライド に自動挿入する方法をご紹介します!
- 必要なアイコンをワンクリックで挿入
- 画像ダウンロードは何回も不要!
- プレゼン資料の準備時間も大幅削減!
スライドに画像を自動挿入
ご紹介するスクリプトの大まかな流れはこんな感じ。
資料作成時、すぐに画像を呼び出してくることが可能です。
- Googleドライブの画像が保存されたドライブを指定
- 画像のファイル名指定
- GASで指定のスライドに画像を呼び出す
\GASを学ぶならこの本がおススメ!!/
画像をGoogleドライブに保存
スライドで使いたい画像はGoogleドライブに保存。専用のフォルダを作成しておくと便利。
『アイコン』というフォルダを作成します。このフォルダにスライドで利用したい画像を保存。
◇今回つかうアイコン◇
(商談時、取引の流れを説明するのにつかうアイコンです。)
- 人
- メール
- ファイル
画像自動挿入のスクリプト
説明内容はあまり変わらないからプレゼン資料の作成に時間をかけたくない!
でも、プレゼンする相手は変わるので少しスライドを編集したい!
プレゼン資料は自分の武器。ある程度、型をつくっておくとラクです。
Googleスライドをひらく
- メニュータブから【拡張機能】をタップ
- 【Apps script】をタップ
画像挿入するためのスクリプトは以下のとおり。
function icon_insert_1() {
const folder_id = "****************"; // 画像ファイルが保存されているフォルダのID
const image_name = "人.png"; // 挿入する画像ファイル名(※自由記述です。)
let folder = DriveApp.getFolderById(folder_id);
let image = folder.getFilesByName(image_name).next(); // 名前からファイル取得
let presentation = SlidesApp.getActivePresentation();
let activeSlide = presentation.getSelection().getCurrentPage(); // 現在の選択スライドを取得
activeSlide.insertImage(image.getBlob());
}
このスクリプトを実行すれば、人アイコンが自動挿入される形となります。
function icon_insert_1()とさせていただいている部分についてです。
複数アイコンを設定したい場合は、function icon_insert_2()、function icon_insert_3()と続けてスクリプトを準備します。
function icon_insert_1() {
const folder_id = "****************"; // 画像ファイルが保存されているフォルダのID
const image_name = "人.png"; // 挿入する画像ファイル名(※自由記述です。)
let folder = DriveApp.getFolderById(folder_id);
let image = folder.getFilesByName(image_name).next(); // 名前からファイル取得
let presentation = SlidesApp.getActivePresentation();
let activeSlide = presentation.getSelection().getCurrentPage(); // 現在の選択スライドを取得
activeSlide.insertImage(image.getBlob());
}
function icon_insert_2() {
const folder_id = "****************";
const image_name = "メール.png";
let folder = DriveApp.getFolderById(folder_id);
let image = folder.getFilesByName(image_name).next();
let presentation = SlidesApp.getActivePresentation();
let activeSlide = presentation.getSelection().getCurrentPage();
activeSlide.insertImage(image.getBlob());
}
function icon_insert_3() {
const folder_id = "****************";
const image_name = "ファイル.png";
let folder = DriveApp.getFolderById(folder_id);
let image = folder.getFilesByName(image_name).next();
let presentation = SlidesApp.getActivePresentation();
let activeSlide = presentation.getSelection().getCurrentPage();
activeSlide.insertImage(image.getBlob());
}
<folder_id>を該当の文字列を入れてもらって、スクリプトを実行すれば、画像はスライド上に挿入されます。
画像はどこのページに挿入される?
現在表示しているスライド上ではなく特定のスライドに画像を挿入したい時のスクリプトは上記スクリプトを以下のスクリプトに入れ替えてください。
・変更前
let activeSlide = presentation.getSelection().getCurrentPage(); // 現在の選択スライドを取得
・変更後
let activeSlide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK); // 新規空白スライドを取得
空白以外にも事前定義された、レイアウトのスライド資料に画像を挿入したいときは、上記スクリプトのBLANKを変更していただければ、スライドの変更は可能です。
⇒公式レファレンス(Enum PredefinedLayout)
メニュータブから自動挿入
わざわざ、スクリプト画面から実行ボタンを押すのも大変ですよね。
そういうときは、メニュータブにオリジナルのボタンを追加することが可能。
コレを実装しておけば、作りたいスライド資料にスムーズに画像挿入が可能です。
以下のスクリプトでそのメニューを追加することが可能です。
function Custom_menu() {
let ui = SlidesApp.getUi()
//メニュー名は自由に入れてください
let menu = ui.createMenu("アイコン挿入");
//メニューに実行ボタン名と関数を割り当て
menu.addItem("ボタン名1","スクリプト名1");
menu.addItem("ボタン名2","スクリプト名2");
menu.addItem("ボタン名3","スクリプト名3");
//スプレッドシートに反映
menu.addToUi();
}
Menuオブジェクト
スクリプトエディタ画面からわざわざ、スクリプトの実行をするのも手間。
こちらのスクリプトを実行すると、タブにカスタムメニューが追加されます。
自動挿入のスクリプト実行
- 画像挿入のスクリプト
- メニュー追加のスクリプト
2つのスクリプトを実行すると、スムーズにアイコンが挿入されます。
テンプレート化しておけば、プレゼン資料も効率よく作成できるようになります。
まとめ
- スライド資料はテンプレ化がオススメ
- 常用アイコンは使いたいときにすぐに呼び出す
- カスタムメニューをつかって更に便利に!
スライド資料にアイコン(画像)挿入を自動化してみました。プレゼン資料の作成はだいぶスムーズになるはず!
都度、「どの画像つかおうかなぁ」・・・となりやすい方にとっては、非常に便利なツールになるかと思います。
\スプレッドシートでもカスタムメニュー!!/