【GAS】フォルダ内の画像一覧表を作るプログラム!

この記事は約5分で読めます。
スポンサーリンク
スポンサーリンク

【GAS】フォルダ内の画像一覧表を作るプログラム!

GASを用いて、

・スプレッドシートにグーグルドライブのファルダ内のファイルの一覧を作る

プログラムを紹介していきたいと思います!

早速プログラムの紹介!

早速プログラムを紹介していきたいと思います!

今回作成するプログラムは、下のリンクのものとなっており、

・セル「G2」に入力したドライブのIDをもとに、
・ドライブの中のファイル一覧を書き出し、
・画像を表示させていくプログラムになります。

【公開用】image抜き出し
シート2 NAME,URL,ID,PICTURE,フォルダID 1_lifeevent.pdf,
プログラム例

プログラムを書くのがめんどくさいという方は、ダウンロードしてまずは使用してみてください。

そのままですと閲覧のみ可能になっていますので、
ファイル→コピーを作成で、自分のスプレッドシートにコピーを作成してください。

スプレッドシートをコピーする方法

コード紹介

では、今回使用したコードを紹介したいと思います。
※ダブルクリックでコピーできます。

function getPicID() {
  
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,1,1000,4).clearContent()
  
  var Driveid=  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,7).getValue()
  
  
  // フォルダ内のファイルを一括取得
  var files = DriveApp.getFolderById(Driveid).getFiles();  
//  var files = DriveApp.getFolderById("1EXmXX0jzBONqx4tsKvytHQfxLwhgYy94").getFiles();
  // 配列を宣言
  var Pic = [];
  // 配列に「名前」「URL」「ID」
  while(files.hasNext()) {
    //一括取得したファイルの中から順に一つ取り出す
    var file = files.next();
    //「名前」「説明」「URL」をそれぞれ格納
    Pic.push([
      file.getName(),
      file.getUrl(),
      file.getId(),
      "=image(\"https://drive.google.com/uc?id="+file.getId()+"\")",

    ]);
  }

 
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,1,Pic.length,Pic[0].length).setValues(Pic)
  
}

プログラム内容説明

ではプログラムの詳細を説明していきましょう。

フォルダの中のファイル一覧を取得

①フォルダを指定して(getFolderbyId)、その中のファイルすべてを指定します(getFiles())。

  var Driveid=  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,7).getValue()
  
  
  // フォルダ内のファイルを一括取得
  var files = DriveApp.getFolderById(Driveid).getFiles();  

ファイル一覧から情報を抜き出し、配列に代入

②ファイルの情報を配列に入れていきます。
 ・hasNext()でファイルが終わるまで繰り返し、
 ・Pic.push=([名前,URL,ID,image関数])の4列の配列を積み重ねていきます。

  // 配列を宣言
  var Pic = [];
  // 配列に「名前」「URL」「ID」
  while(files.hasNext()) {
    //一括取得したファイルの中から順に一つ取り出す
    var file = files.next();
    //「名前」「説明」「URL」をそれぞれ格納
    Pic.push([
      file.getName(),
      file.getUrl(),
      file.getId(),
      "=image(\"https://drive.google.com/uc?id="+file.getId()+"\")",

    ]);
  }

setvaluesで書き込み。

③最後にスプレッドシートに書き込んで終わりです。

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,1,Pic.length,Pic[0].length).setValues(Pic)

プログラムのポイント

今回のプログラムのポイントは、

①image関数を使って、セル内に画像を表示させること。

②数式の中に「”(ダブルクオーテーションマーク)」を使う時は、
 「\”」と宣言しないといけないこと。

      "=image(\"https://drive.google.com/uc?id="+file.getId()+"\")",

③push関数の使い方

    Pic.push([A, B, C, D ]);

です。

これ以外は特に難しいことはしていないと思います。

まとめ

スプレッドシートを使うと、ドライブと連携して、画像の表示などいろいろなことができます。

ぜひ、自分なりのアレンジをして、かっこいい表を作成してください!

スポンサーリンク
スポンサーリンク
GAS
スポンサーリンク
nujonoaをフォローする
nujonoa_blog

コメント欄

タイトルとURLをコピーしました