【GAS】スプレッドシートに記載したフォルダ構成をGoogleドライブ内に自動作成

Gerd AltmannによるPixabayからの画像

 Googleドライブへフォルダを作成する場合は、新規作成から簡単に作ることができます。したがって、プログラムを活用して自動する利点があまりないように思えます。しかし、グループ全体のフォルダを一度に作成したり、あらかじめフォルダの構成がわかっているたりする場合は、利点へと変わります。つまりは、使い方で利点や欠点へ変化するわけです。

フォルダを作成するためには

 GASでフォルダを作成する場合は、「Class Folder」を使います。フォルダークラスにある「createFolder」を使えば、作成できそうです。下記のようなプログラムコードを作成すると、Googleドライブのマイドライブに「練習用フォルダ」が作成されることがわかります。

 プログラム実行時に生じる「承認」の方法はこちらの記事をお読みください ー>ここをクリック

練習用フォルダを作成するプログラムコードはこちら

 特に注意する内容はありません。リファレンスマニュアル通りに作成しています。

function myFunction() {
    DriveApp.createFolder("練習用フォルダ");
}

動作結果はこちら

 Googleドライブのマイドライブ内に下記のフォルダが作成されれば成功です。

フォルダの階層を作成するには

 先ほど方法だとマイドライブにフォルダを自動作成できるが、階層を深く作成することができません。では、どうすればよいでしょうか?通常、人の手で作成する場合は、フォルダを作成し、その中にさらに作成していきます。基本的には、人の手と同じ手順でプログラミングすることが基本となるため、プログラミングのイメージは下記のとおりとなります。

フォルダ階層を作成するプログラムコードはこちら

function myFunction() {
  //DriveApp.createFolder("練習用フォルダ");
  let folder = DriveApp.createFolder("01練習");
  let folder1 = folder.createFolder("02練習");
  let folder2 = folder1.createFolder("03練習");
}

動作結果はこちら

 上記のプログラムを動作させると、下図のようなフォルダが作成されていれば成功です。
    01練習
      →02練習
         →03練習

スプレッドシートに記載したフォルダ構成をGoogleドライブ内に自動作成

 ここまでできれば、スプレットシートに記載された情報を読み込んで作成するだけです。

スプレッドシートに構成図を作成

 まずは、下記のスプレッドシートを作成しましょう。注意点としては、GASで読み込むためのシートになるため、セルの合成を絶対に実施しないようにしてください。スプレットシートの使い方は、下記の「こちらをクリック」より別記事で確認をお願いします。

 スプレッドシートの使い方 ー> こちらをクリック

プログラムソースはこちら

 設定のプログラムが長くなったので、「folder_init」という初期化だけ実施する関数を作成しました。本当は、スライドとスプレッドシートを組み合わせたように、GASを触らなくても動作できるような作り方が理想です。ただし、フォルダ構成図は、作成者の考え方でもっと深くなる場合やフォルダ数もいくつになるかわからないため、作り方が少し難しいですね。

関数の作成方法はこちらの記事より ー> こちらをクリック

function myFunction() {
//関数で初期設定をする
  const [foldername01,foldername02,sub011,sub012,sub013,sub021,sub022,sub023,sub024] = folder_init();
//01Workの階層を作成
  let folder1 = DriveApp.createFolder(foldername01);
  folder1.createFolder(sub011);
  folder1.createFolder(sub012);
  folder1.createFolder(sub013); 
//02Workの階層を作成
  let folder2 = DriveApp.createFolder(foldername02);
  folder2.createFolder(sub021);
  folder2.createFolder(sub022);
  folder2.createFolder(sub023); 
  folder2.createFolder(sub024);  
}

function folder_init(){
//いつものスプレッドシートのデータを変数へ保存
  const sheeets = SpreadsheetApp.getActiveSpreadsheet();//現在動作しているスプレッドシートを設定
  const sheetData = sheeets.getSheetByName('フォルダ構成').getDataRange().getValues();//今回は方法を変えてシートを指定してみました。
  const foldername01 = sheetData[1][1];//セルB2
  const sub011 = sheetData[2][2];
  const sub012 = sheetData[3][2];
  const sub013 = sheetData[4][2];
  const foldername02 = sheetData[5][1];
  const sub021 = sheetData[6][2];
  const sub022 = sheetData[7][2];
  const sub023 = sheetData[8][2];
  const sub024 = sheetData[9][2];
//返り値
  return [foldername01,foldername02,sub011,sub012,sub013,sub021,sub022,sub023,sub024];
}

実行結果

 実行すると、スプレッドシートで構成したフォルダを作成することができました。このプログラムは、実行すると5秒程度で完成しました。

まとめ

 このプログラムは、スプレッドシートの「B2」から「C10」まで使ってフォルダ構成を作成したファイルを実際に作成するものです。仮に異なるフォルダ構成を作りたい場合は、「const sub024 = sheetData[9][2];」の部分を増やしたり変更したりすると変わります。このプログラムコードを変更して色々とチャレンジしてください。

 注意点:一度実行すると実際にフォルダが作成されるため、毎回削除する必要があります。

Follow me!

【GAS】スプレッドシートに記載したフォルダ構成をGoogleドライブ内に自動作成” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です