見出し画像

実務者がGASで作る:Googleドライブで大量のフォルダを数分で作成する方法

こんにちは、ENUと申します。
企業で事務職をしながら、実務でアプリを作ったり、生成AIでコードを作って作業を自動化しています。
私は非エンジニアですが、そんな私でもできるレベル(=多くの方が実践しやすい)の業務効率化を紹介します。

今回は、データ管理フォルダに関する業務効率化を紹介します。毎日、案件の資料作成やデータ整理に追われている方は必見です!

「後でフォルダを作って整理しよう…」そう思いつつも、目の前の業務に追われて、ついつい後回しにしてしまう。そんな経験はありませんか?

本記事では、Google Apps Script (GAS) を使って、スプレッドシートから案件フォルダを自動作成する方法を紹介します。 この方法を使ってGASを準備しておけば、大量のフォルダでも数分で作成できます。GASを使うことで面倒なフォルダ整理から解放され、本来の業務に集中できるようになります。


手作業の限界

案件ごとにフォルダを作成する作業は、想像以上に時間と労力を要します。

  • 1つの案件に対して、フォルダ名を入力し、フォルダを作成する。

  • 新しい案件が発生するたびに、この作業を繰り返す。

10個や20個のフォルダ作成ならまだしも、50個や100個となると、多くの時間と労力を費やすことになります。

GASで自動化!

そこで役立つのが、Google Apps Script (GAS) です。

GASとは、GoogleスプレッドシートやGoogleドライブなどのGoogleサービスと連携して、自動処理を実現するスクリプト言語です。

GASを活用すれば、スプレッドシートに案件番号と案件名を入力するだけで、自動でフォルダを作成できます。

具体的な手順

1. スプレッドシートの準備

例としてスプレッドシートに以下のように項目を入力します。
※実際の案件に合わせて名称などを変更してください。
※作成したフォルダのURLを取得しておくと他のGASと組み合わせをしやすいです。

2. GASの準備

「拡張機能」タブ → 「Apps Script」を開きます。

プロジェクト名を記載します。
ここでは「Googleドライブのフォルダ作成」としておきます。

初めから記載されているコードを削除します。


以下のコードをコピーして、GASエディタに貼り付けます。

function createFolders() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getActiveSheet();
  const lastRow = sheet.getLastRow();

  // フォルダを作成する親フォルダの URL を取得
  const parentFolderUrl = "https://drive.google.com/drive/folders/16WEt1vIY5f17lHU23O3MxPtTnYnRJXri"; 
  const parentFolder = DriveApp.getFolderById(parentFolderUrl.split("/").pop());

  // A2 から最終行までループ処理
  for (let i = 2; i <= lastRow; i++) {

    // C列が「フォルダ作成済み」の場合はスキップ
    if (sheet.getRange(i, 3).getValue() === "フォルダ作成済み") {
      continue; 
    }

    const applicationNumber = sheet.getRange(i, 1).getValue().toString().padStart(3, '0'); // i行目のA列の値を取得し、文字列に変換後、3桁になるように先頭に'0'を付けて案件番号とする
    const projectName = sheet.getRange(i, 2).getValue(); // i行目のB列の値を取得し、案件名とする
    const folderName = applicationNumber + "_" + projectName;// 案件番号と案件名を"_"でつないでフォルダ名を作成する

    // フォルダが存在しない場合のみ作成
    if (!parentFolder.getFoldersByName(folderName).hasNext()) {
      const newFolder = parentFolder.createFolder(folderName); // 作成したフォルダを取得
      sheet.getRange(i, 3).setValue("フォルダ作成済み"); 
      sheet.getRange(i, 4).setValue(newFolder.getUrl()); // D列にフォルダのURLを記載
    } 
  }
}

上記のコードの「フォルダを作成する親フォルダの URL を取得」のところはフォルダを作りたい場所のURLをコピーして貼り付けてください。

コードを貼り付けてから、保存ボタンを押してください。

3. スクリプトの実行

GASエディタの「実行」ボタンをクリックし、「createFolders」関数を呼び出します。

4. フォルダの確認

Googleドライブに、スプレッドシートに入力した案件名でフォルダが自動作成されていることを確認します。

生成AIでのコード作成&改良

GASのコード作成、改良は生成AIツールを活用しましょう。

ChatGPTやClaude、GeminiなどのAIツールに、以下のように指示すれば、コードを自動生成してくれます。出力される文章に好みはあるかと思いますが、初心者が利用する分には各生成AIのGASのコード作成能力に大きな差は感じないと思います。
参考までに今回はGemini(1.5 Pro)を使用しています。

今回のプロンプト例(生成AIへの指示)

  • Google Apps Script (GAS)で、スプレッドシートからGoogleドライブにフォルダを自動作成したいです。

  • スプレッドシート:現在開いているシートの2行目から最終行まで

  • データ:A列「案件番号」(3桁になるよう0埋め)、B列「案件名」

  • フォルダ名:「案件番号_案件名」(例:001_株式会社A様 契約書、 002_B社 請求書)

  • フォルダを作成する親フォルダURL: "https://drive.google.com/drive/folders/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

  • C列に処理結果「フォルダ作成済み」を出力

  • D列に作成したフォルダのURLを記載

  • C列が「フォルダ作成済み」の行は処理をスキップ

初心者でも入力しやすいようにシンプルなプロンプトにしています。
他人に要点を伝える場合と同様に正確に言語化しましょう。

まとめ

本記事では、GASを使ってスプレッドシートから案件フォルダを自動作成する方法を紹介しました。

この方法を使えば、大量のフォルダでも数分以内に作成できます。 これまでフォルダ整理に費やしていた時間を、より重要な業務に充てることができます。

ぜひ、GASを活用して業務効率を改善してみてください!

この記事が気に入ったらサポートをしてみませんか?