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 Apps Script]UrlFetchApp.fetchからのアクセス情報

    UrlFetchApp.fetchしたときに、アクセス対象のサーバーに…

  2. Office関連

    CDOを使ってGmail送信を行うVBAマクロ

    「VBA Gmail 送信」といったキーワード検索で、「Gmail A…

  3. Power Automate for desktop

    [Power Automate Desktop]Google APIのアクセストークンを取得するフロ…

    前回の記事でGoogle APIのアクセストークンを取得するPower…

  4. Google関連

    [Google Apps Script]jQuery UIのDatepickerを使ってスプレッドシ…

    「この記事のようにjQuery UIのDatepickerを使ってスプ…

  5. Google関連

    [Google Apps Script]Googleドキュメント文書をPDFに変換してメール送信する…

    先日Twitterで @TsujiKenzo さんが下記のようにツイー…

  6. Office アドイン

    [Office用アプリ]Google ドライブでアプリを公開する方法

    今回は先日登壇した第一回 Apps for Office 勉強会の中で…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP