Google Apps Script でGdrive(Gドライブ)に複数の新規フォルダを作成する方法

はじめに、Google Apps Scriptとは?

Google Apps Scriptとは、Google社が提供するプログラミング言語のことです。
Google Apps Scriptというプログラミング言語を使い、同じくGoogle社が提供するGmailやGoogleスプレッドシート、Gドライブ、Googleドキュメントを操作することができます。Gmailや、Googleスプレッドシートを使ったことがある方には「Gmailやスプレッドシートは使ったことがあるけど、プログラミングと聞くとなんだか難しいそう」という印象を持たれるかもしれませんが、コツさえつかんでしまえば意外と簡単で、今まで手間だった仕事をボタンをクリックするだけに簡略化し、効率化することもできるのです。

Google Apps Scriptでは何が出来るか?

Google Apps Scriptで出来ることの代表例は下記の通りです。

・カスタムのメニュー、ダイアログ、サイドバーを Google ドキュメント、スプレッドシート、フォームに追加する。
・Google スプレッドシート用のカスタム関数を作成する。
・ウェブアプリを公開する(スタンドアロンまたは Google サイトへの埋め込み)。
・AdSense、アナリティクス、カレンダー、ドライブ、Gmail、マップなど、他の Google サービスと連携する。
・Google ドキュメント、スプレッドシート、スライド、フォームを拡張するアドオンを作成して、アドオンストアで公開する。

上記以外にもさまざまな用途がございますが、今回は、Google Apps Scriptを使用して、Gドライブに複数の新規フォルダを作成する方法をご紹介します。
※あらかじめGoogle Apps Scriptの基本的な使い方を熟知されてからの閲覧をお勧めいたします。

Google Apps Scriptを使用して、Gドライブに複数の新規フォルダを作成する方法

まずはスプレッドシートを開き、シートに新規フォルダを配置したいGドライブのフォルダIDを入力します。
フォルダIDは、Gドライブのフォルダを開いている状態で表示されるURLの末尾のことです。
※下記の画像の灰色部分がフォルダIDです。

同じくスプレッドシートに、新規作成するフォルダ名を複数入力します。
例として下記のように入力いたしました。※A4のセルにはフォルダIDを入力してください。

次に、メニューの「ツール」から「スクリプト エディタ」を開きましょう。
「スクリプト エディタ」を開くと、「コード.gas」が開いていますので、そこに下記のコードを入力してください。


 function newFolders() {
  //アクティブなスプレッドシートを取得
  var spsheet = SpreadsheetApp.getActiveSpreadsheet();
  spsheet.setActiveSheet(spsheet.getSheetByName(“シート1”));
  var x = SpreadsheetApp.getActiveSheet();

  //フォルダのIDを取得
  var y = x.getRange(‘A4’);
  var z = y.getValues();
  var folder = DriveApp.getFolderById(z);

  //最終行を取得
  lastRow = x.getLastRow();

  //for文による繰り返し①
  for(var i = 7 ; i <= lastRow; i++){
   var name = x.getRange(i,1);
   var foldername = name.getValue();
   folder.createFolder(foldername);
  }

 }

関数を選びスクリプトを実行すると、下記の画像のように新しくフォルダが作成されます。

また、「番号」と「名前」でフォルダ名を組み合わせたい場合や、すべてのフォルダの末尾に「フォルダ」と名前をつけたい場合は下記のようにスプレッドシートに行を増やしてそれぞれ「番号」と「名前」を入力します。

スクリプトコードは下記のように変更します。


 function newFolders() {
  //アクティブなスプレッドシートを取得
  var spsheet = SpreadsheetApp.getActiveSpreadsheet();
  spsheet.setActiveSheet(spsheet.getSheetByName(“シート1”));
  var x = SpreadsheetApp.getActiveSheet();

  //フォルダのIDを取得
  var y = x.getRange(‘A4’);
  var z = y.getValues();
  var folder = DriveApp.getFolderById(z);

  //最終行を取得
  lastRow = x.getLastRow();

  //for文による繰り返し①
  for(var i = 7 ; i <= lastRow; i++){
   var name1 = x.getRange(i,1);
   var name2 = x.getRange(i, 2);
   var foldername1 = name1.getValue();
   var foldername2 = name2.getValue();
   folder.createFolder( foldername1 +”_”+ foldername2 + “フォルダ” );
  }

 }

21行目の「folder.createFolder( foldername1 +”_”+ foldername2 + “フォルダ” );」の()内に共通して付けたい文字列を「+」を付けて2つの「”」(ダブルクォーテーション)で囲んで入力します。
スクリプトを実行した結果は下記画像の通りです。

まとめ

以上が、Gドライブで手動でフォルダを作成せずにスプレッドシートを用いて、Gドライブに一括でフォルダを作成する方法でした。1つ1つ手作業でも作業としては問題ないですが、これが10個ではなく100個200個・・・となっていくと作業が膨大となってしまい、時間が掛かってしまいます。
今回ご紹介した方法でGoogle Apps Script用いて、作業を楽にそして且つ効率性を高めてはいかがでしょうか。