2021/10/26に更新

【GASで効率化】画像をスライド幅と同じサイズに拡大・縮小する

スライド小技

選択している画像オブジェクトのサイズを、スライドの幅と同じサイズに拡大(縮小)するGoogle Apps Scriptです。位置も上下中央、左右中央に移動します。

こんな悩みを解決します


  • スライドに貼り付けた画像をスライド幅いっぱいに拡大(縮小)したいが、手作業でやるのは手間がかかる

用意するもの


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

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


  • 選択した画像オブジェクトを、スライドの幅いっぱいに拡大 or 縮小します。
  • 縦横の比率はそのままです。
  • 同時に上下中央、左右中央に位置も調整します。

使い方


1.コピーしたいオブジェクトを選択

コピーしたい画像オブジェクトを1つ選択します。
複数のオブジェクトや、グループ化したオブジェクトには対応していません。

2.スクリプトを実行

上部のメニューから「画像をスライドと同じ幅に拡大・縮小する」を実行します。

スクリプトの実行が終わると画像のサイズと位置が変更されます。

3.エラーメッセージ

スライド内のオブジェクトが選択されていない場合は「スライド内の画像をを1つだけ選択してから実行してください」というエラーメッセージが出てスクリプトが終了します。

スライド内のオブジェクトが複数選択されている場合や、選択されたオブジェクトが画像ではない場合は「スライド内の画像を1つだけ選んでください」というエラーメッセージが出てスクリプトが終了します。

スクリプト


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

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

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

  // メニューに追加するボタン
  menu.addItem('画像をスライドと同じ幅に拡大・縮小する', 'expandImageFullWidth');

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


function expandImageFullWidth() {

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

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

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

  let ui = SlidesApp.getUi();

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

  // 選択中のオブジェクトが画像でなければエラー
  if (selection.getPageElementRange().getPageElements().length > 1 || selection.getPageElementRange().getPageElements()[0].getPageElementType() != 'IMAGE') {
    ui.alert('スライド内の画像を1つだけ選んでください');
    return;
  }

  // スライドのサイズを取得する
  const slide_width = presentation.getPageWidth();
  const slide_height = presentation.getPageHeight();

  // 選択中の画像のサイズを取得する
  const img_width = selection.getPageElementRange().getPageElements()[0].getWidth();
  const img_height = selection.getPageElementRange().getPageElements()[0].getHeight();

  // 拡大比率を計算する 100%にしたいのは横幅
  const ratio = slide_width / img_width;

  // 画像の縦幅を計算する(幅はスライドサイズとイコールのため計算不要)
  const img_height_calc = img_height * ratio;

  // 画像のサイズを変更
  selection.getPageElementRange().getPageElements()[0].setHeight(img_height_calc).setWidth(slide_width);

  // 画像の位置をスライド中央に変更
  selection.getPageElementRange().getPageElements()[0].alignOnPage(SlidesApp.AlignmentPosition.HORIZONTAL_CENTER).alignOnPage(SlidesApp.AlignmentPosition.VERTICAL_CENTER);

}

関連するアプリ


タグ一覧

最新のアプリ

人気のアプリ

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