GASでスプレッドシートのA列に表示されているテキスト一覧を元にフォルダを一気に作ってみます。
GASのサンプルコード
スプレッドシートのA列にあるテキストを元に、指定したフォルダ内にフォルダを作成するGASのサンプルコードを示します。
function createFoldersFromSpreadsheet() {
// アクティブなスプレッドシートを取得
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// A列のデータを取得
const folderNames = sheet.getRange("A1:A" + sheet.getLastRow()).getValues();
// 親フォルダを指定(ここでフォルダIDを指定)
const parentFolderId = "ここに親フォルダのIDを入力してください";
const parentFolder = DriveApp.getFolderById(parentFolderId);
// 各フォルダ名でフォルダを作成
folderNames.forEach(function(folderName) {
if (folderName[0] !== "") { // 空白セルをスキップ
const newFolder = parentFolder.createFolder(folderName[0]);
Logger.log("フォルダを作成しました: " + folderName[0]);
}
});
}
フォルダが一気に作成されました。
スクリプトの解説
このスクリプトの使い方は以下の通りです。
- スプレッドシートのA列にフォルダ名のリストを入力します。A1セルはヘッダーとして使用し、A2セルから実際のフォルダ名を入力してください。
- 親フォルダのIDを取得します。これを行うには:
- Googleドライブで対象のフォルダを開きます。
- URLを確認し、「folders/」の後に続く文字列がフォルダIDです。
- スクリプトエディタを開き、上記のコードを貼り付けます。
parentFolderId
の値を、ステップ2で取得したフォルダIDに置き換えます。- スクリプトを保存し、実行します。
- 初回実行時は、必要な権限を付与してください。
このスクリプトを実行すると、指定した親フォルダ内に、スプレッドシートのA列に入力されたフォルダ名に基づいてフォルダが作成されます。
コードブロック(forEach)
forEachのコードブロックについて解説します。
folderNames.forEach(function(folderName) {
if (folderName[0] !== "") { // 空白セルをスキップ
const newFolder = parentFolder.createFolder(folderName[0]);
Logger.log("フォルダを作成しました: " + folderName[0]);
}
});
このコードは、スプレッドシートから取得したフォルダ名のリストを使って、実際にGoogleドライブ上にフォルダを作成する部分です。
以下、各行について説明します。
folderNames.forEach(function(folderName) {
forEach
メソッドを使用して、folderNames
配列の各要素に対して処理を行います。folderName
は配列の各要素(各行のデータ)を表します。
if (folderName !== "") {
- 各
folderName
は配列になっており、folderName
は各行の最初(A列)のセルの値を指します。 - この条件文は、セルが空白でない場合にのみ処理を実行します。これにより、空のセルに対してフォルダを作成することを防ぎます。
- 各
const newFolder = parentFolder.createFolder(folderName);
parentFolder
(事前に指定した親フォルダ)の中に新しいフォルダを作成します。createFolder
メソッドを使用し、フォルダ名としてfolderName
(A列のセルの値)を指定します。- 作成されたフォルダオブジェクトが
newFolder
変数に格納されます。
Logger.log("フォルダを作成しました: " + folderName);
- フォルダが作成されたことをログに記録します。
Logger.log
はGASのログ機能で、スクリプトの実行ログに情報を出力します。- ログには “フォルダを作成しました: ” というメッセージと、作成したフォルダの名前が含まれます。
これにより、列のテキストでフォルダをループで一気に作成することができます。
スクリプトの注意点
- フォルダIDは慎重に扱ってください。セキュリティ上の理由から、公開されたスクリプトにフォルダIDを直接記載することは避けるべきです。
- 既に同名のフォルダが存在する場合、新しいフォルダが追加で作成されます。重複を避けたい場合は、追加のチェックロジックを実装する必要があります。
- 大量のフォルダを作成する場合は、Googleの制限に注意してください。
まとめ
このスクリプトを使用することで、指定したフォルダ内に、スプレッドシートに入力したフォルダ名リストに基づいてフォルダを一気に作成することができます。