スキルアップを始める!

【GAS】スプレッドシートのA列に表示されているテキスト一覧を元にフォルダを一気に作成する

GAS(GoogleAppsScript)
GAS(GoogleAppsScript)
この記事は約5分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

GASでスプレッドシートのA列に表示されているテキスト一覧を元にフォルダを一気に作ってみます。

Screenshot

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]);
}
});
}
Screenshot

フォルダが一気に作成されました。

Screenshot

スクリプトの解説

このスクリプトの使い方は以下の通りです。

  1. スプレッドシートのA列にフォルダ名のリストを入力します。A1セルはヘッダーとして使用し、A2セルから実際のフォルダ名を入力してください。
  2. 親フォルダのIDを取得します。これを行うには:
    • Googleドライブで対象のフォルダを開きます。
    • URLを確認し、「folders/」の後に続く文字列がフォルダIDです。
  3. スクリプトエディタを開き、上記のコードを貼り付けます。
  4. parentFolderIdの値を、ステップ2で取得したフォルダIDに置き換えます。
  5. スクリプトを保存し、実行します。
  6. 初回実行時は、必要な権限を付与してください。

このスクリプトを実行すると、指定した親フォルダ内に、スプレッドシートのA列に入力されたフォルダ名に基づいてフォルダが作成されます。

Screenshot

コードブロック(forEach)

forEachのコードブロックについて解説します。

folderNames.forEach(function(folderName) {
if (folderName[0] !== "") { // 空白セルをスキップ
const newFolder = parentFolder.createFolder(folderName[0]);
Logger.log("フォルダを作成しました: " + folderName[0]);
}
});

このコードは、スプレッドシートから取得したフォルダ名のリストを使って、実際にGoogleドライブ上にフォルダを作成する部分です。

以下、各行について説明します。

  1. folderNames.forEach(function(folderName) {
    • forEachメソッドを使用して、folderNames配列の各要素に対して処理を行います。
    • folderNameは配列の各要素(各行のデータ)を表します。
  2. if (folderName !== "") {
    • folderNameは配列になっており、folderNameは各行の最初(A列)のセルの値を指します。
    • この条件文は、セルが空白でない場合にのみ処理を実行します。これにより、空のセルに対してフォルダを作成することを防ぎます。
  3. const newFolder = parentFolder.createFolder(folderName);
    • parentFolder(事前に指定した親フォルダ)の中に新しいフォルダを作成します。
    • createFolderメソッドを使用し、フォルダ名としてfolderName(A列のセルの値)を指定します。
    • 作成されたフォルダオブジェクトがnewFolder変数に格納されます。
  4. Logger.log("フォルダを作成しました: " + folderName);
    • フォルダが作成されたことをログに記録します。
    • Logger.logはGASのログ機能で、スクリプトの実行ログに情報を出力します。
    • ログには “フォルダを作成しました: ” というメッセージと、作成したフォルダの名前が含まれます。

これにより、列のテキストでフォルダをループで一気に作成することができます。

スクリプトの注意点

  • フォルダIDは慎重に扱ってください。セキュリティ上の理由から、公開されたスクリプトにフォルダIDを直接記載することは避けるべきです。
  • 既に同名のフォルダが存在する場合、新しいフォルダが追加で作成されます。重複を避けたい場合は、追加のチェックロジックを実装する必要があります。
  • 大量のフォルダを作成する場合は、Googleの制限に注意してください。

まとめ

このスクリプトを使用することで、指定したフォルダ内に、スプレッドシートに入力したフォルダ名リストに基づいてフォルダを一気に作成することができます。

URLをコピーしました!