今回はGASでGoogleドライブに新規フォルダを作成するcreateFolderというメソッドをご紹介します。
こちらのメソッドを使えるようになると、バッチ処理として一括でフォルダを作成したりといった処理が簡単に行えるようになります。私も単純作業をしているときなどはよくスプレッドシートとこのようなシンプルな機能を組み合わせてバッチ処理を行っています。この部分だけを取り上げてみてもGASを学んでよかったなぁと思える部分の一つであると感じています。
Googleドライブにフォルダを作成する— createFolder()
コピペで使えるサンプルコードを参照したい方はこちらをクリックすればサンプルコードまでジャンプできますので、手っ取り早くコードを確認したい方はクリックしてください。
さて、こちらのメソッドはcreateFileととてもよくにた使い方をします。createFileと同じようにcreateFolderではDriveAppクラスのメソッドとFolderクラスのメソッドとして存在します。2つの違いはフォルダの作成される場所にあります。
DriveAppクラスの場合は、マイドライブ直下にフォルダが作成されます。
そのため、DriveAppクラスを使う場合で、任意のフォルダにフォルダを作成したい場合は作成後にmoveToメソッドと併用する必要があります。
一方で、FolderクラスのメソッドとしてcreateFileを使う場合は事前に取得したフォルダに対してファイルが作成されます。
私はFolderクラスのほうがシンプルでわかりやすいので、こちらを使うことが多いです。好みの問題だと思いますので、どちらを使ってもいいと思います。
みなさんも好きな方を選んで使ってください。
今回のメソッドは引数として指定するのはフォルダ名のみのため、とても覚えやすいです。
『 引数に入れる値 』
- name(文字列) — 新規フォルダのフォルダ名
『 関連するメソッド 』
合わせて覚えたいフォルダやファイル操作に関するメソッド
- createFile — ファイルを新規作成する
- getFiles — 特定のフォルダに保存されているファイルを取得する
- getFolders — 特定のフォルダに保存されているフォルダを取得する
createFolder(name)サンプルコード
//マイドライブに新規フォルダを作成するコード function sampleCodeForCreateFolderInMyDrive() { var name = "初心者でもわかるGoogle Apps Script活用のススメのサンプルフォルダ"; DriveApp.createFolder(name); } //任意のフォルダに新規フォルダを作成するコード function sampleCodeForCreateFileInASpecificFolder() {
var name = "初心者でもわかるGoogle Apps Script活用のススメのサンプルフォルダ";
var folder = DriveApp.createFolder(name);
folder.createFolder("子フォルダ");
/*作成したフォルダをマイドライブに移動させるコード
var root = DriveApp.getRootFolder();
folder.moveTo(root);
*/ }
『 変数の説明 』
name = フォルダの名前を指定
『DriveApp.createFolder(name)のサンプルコード』に上記サンプルスクリプトを記載したスクリプトがありますので、アクセスして関数名を選択後に▶ボタンをクリックしてプログラムを実行してみましょう。
プログラムの実行が完了したらマイドライブフォルダを覗いてみましょう。
関数名sampleCodeForCreateFolderInMyDriveを選択して実行をすると、『初心者でもわかるGoogle Apps Script活用のススメのサンプルフォルダ』というフォルダがマイドライブ直下に作成されます。
関数名sampleCodeForCreateFileInASpecificFolderを選択して実行をすると、マイドライブ直下に『初心者でもわかるGoogle Apps Script活用のススメのサンプルフォルダ』というフォルダが生成され、その中に『子フォルダ』というフォルダが作成されていると思います。コメントアウトされている部分を解除すれば、フォルダ作成後にそのフォルダをマイドライブに移動させることができます。
バッチ処理で一括フォルダ作成サンプルコード
//バッチ処理でフォルダを一括作成するコード function createFolders() { var name = "初心者でもわかるGoogle Apps Script活用のススメのサンプルフォルダ"; var folders = DriveApp.searchFolders("title = '" + name + "'"); if (folders.hasNext()) { var folder = folders.next(); } else { var folder = DriveApp.createFolder(name); } var ss = SpreadsheetApp.openById("1voAyRkVYybDn2Igto4fx_X7Ztskr0v6fasFsWQzdZh4"); var sheet = ss.getSheets()[0]; var data = sheet.getDataRange().getValues(); for (var i in data) { var folderName = data[i][0]; var folders = folder.searchFolders("title = '" + folderName + "'"); if (!folders.hasNext()) { folder.createFolder(folderName); } } }
スプレッドシートに記載されたフォルダ名を使って一括でフォルダを作成するサンプルコードを書いてみました。
先程と同じコードにあるcreateFoldersを実行するとマイドライブに『初心者でもわかるGoogle Apps Script活用のススメのサンプルフォルダ』が作成され、その中にスプレッドシート記載のフォルダが次々に出来上がります。
時間をかけずに大量のフォルダを作成する必要がある場合は応用して使って貰えればと思います。
まとめ
今回はGoogle Apps Scriptを使ってGoogleドライブに新しいフォルダを作成する方法をご紹介しました。
使い方はシンプルですので少し使ってみれば簡単に使い方を身につけることができると思います。