Google関連

[Google Apps Script]Google ドライブにある画像をスライドに一括挿入する

前回の記事では、Google ドライブにある1つの画像ファイルをスライドに挿入しました。

今回は、フォルダ内の画像ファイルを1ファイル1スライドとして一括挿入するコードを紹介します。

function myFunction() {
  var prs = SlidesApp.getActivePresentation();
  var fol = DriveApp.getFolderById("(Google ドライブのフォルダID)"); //※フォルダID要変更
  var files = fol.getFiles();
  while(files.hasNext()) {
    var file = files.next();
    //JPEG,GIF,PNG画像のみ処理
    if(file.getMimeType().match(/^image\/(?:jpeg|gif|png)$/i)) {
      try {
        addImageSlide(prs, file.getBlob());
      } catch(e) {
        Logger.log(file.getName() + ":" + e.message);
      }
    }
  }
  SlidesApp.getUi().alert("処理が終了しました。");
}

//空白スライドを追加し画像を挿入
function addImageSlide(prs, imageBlob) {
  var slide = prs.appendSlide(SlidesApp.PredefinedLayout.BLANK);
  var image = slide.insertImage(imageBlob);
  var imgWidth = image.getWidth();
  var imgHeight = image.getHeight();
  var pageWidth = prs.getPageWidth();
  var pageHeight = prs.getPageHeight();
  var newX = (pageWidth / 2) - (imgWidth / 2);
  var newY = (pageHeight / 2) - (imgHeight / 2);
  image.setLeft(newX).setTop(newY); //画像中央揃え
}

上記コードを実行すると、Google ドライブのフォルダにある画像(JPEG,GIF,PNG)を1ファイルずつ追加した空白スライドに挿入していきます。

大まかな処理の流れは下記の通りです。

DriveApp.getFolderByIdメソッドでフォルダ取得

Folder.getFilesメソッドでFileIterator取得

FileIterator.nextメソッドを繰り返し実行し、フォルダ内のFileを順次取得

File.getMimeTypeメソッドでMIMEタイプを取得し、JPEG,GIF,PNG画像のみ処理実行

Slide.insertImageメソッドの引数にFile.getBlobメソッドで取得した画像ファイルのBlobを指定して、スライドに画像を挿入

Image.setLeftメソッドとImage.setTopメソッドで画像をスライドの中央に配置

ここまで来ると、大分実用的になってきました。

参考Webサイト

[Google Apps Script]Google ドライブにある画像をスライドに挿入する前のページ

オフィス祭り 2018 in 東京に参加しました。次のページ

関連記事

  1. Google関連

    Google AdSenseで「PC のパフォーマンスが低下しています」を表示しないようにする。

    下記のサイトでも話題になっていますが、Google AdSenseの怪…

  2. Office関連

    Google スライドで新規プレゼンテーションを作成するVBAマクロ

    ここ数日PowerPointのマクロに加え、Google Apps S…

  3. Office関連

    Gmail APIを使ってメール送信するVBAマクロ

    「「Gmail API」β版公開、連動アプリ開発を支援」にもあるように…

  4. Google関連

    Gmail APIを使ってメール送信するC#コード

    「たまには.NET用のライブラリを使ってGoogle APIでも触って…

  5. Google関連

    [Google Apps Script]選択文字列を翻訳する

    Google Apps Scriptでドキュメント上で選択している…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP