はじめてのGoogle Apps Script(GAS)【Googleスプレッドシートから指定のCSVファイルを出力】

GAS初心者の備忘録

私はGoogle Workspaceのサービスをよく利用するのですが、Google Apps Script(GAS)は使ったことがありませんでした。

最近Web制作のお仕事をするなかではじめてGASを使ってみたので、備忘録としてこちらの記事に手順を書いておきたいと思います。

目次

Google Apps Script(GAS)とは何か

Google Apps Script(GAS)はGoogleが提供する無料のツールです。GASを使うとGoogleドキュメントやGoogleスプレッドシートといったGoogle Workspaceのサービスにおいて、作業を自動化・効率化することができます。

今回はGoogleスプレッドシートから、カテゴリ別のCSVファイルを出力する作業を、GASを使って効率化していきたいと思います!

GoogleスプレッドシートからApps Scriptを開く

題材はこのブログで度々登場する「架空の店舗リスト」です。※以下記事参照

このリストの店舗を、カテゴリごとに分類して、別々のCSVファイルに出し分けていきたいと思います。

まずGoogleスプレッドシートを開いたら、「拡張機能」→「Apps Script」をクリックします。

Googleスプレッドシート上のApps Scriptの位置

すると別タブで「無題のプロジェクト」画面が開くので、ここにスクリプト(命令)を書いていきます。

Apps Scriptエディタ上での作業

この例では以下のスクリプトを記入してみます。

function exportCSVByCategory() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();
  const headers = data[0];
  const rows = data.slice(1);

  const categoryMap = {};

  // カテゴリごとにデータを分類
  rows.forEach(row => {
    const category = row[2]; // カテゴリ列(C列)を想定
    if (!categoryMap[category]) {
      categoryMap[category] = [];
    }
    categoryMap[category].push(row);
  });

  // カテゴリごとにCSV作成&Googleドライブに保存
  for (let category in categoryMap) {
    let csvContent = headers.join(",") + "\n";
    categoryMap[category].forEach(row => {
      csvContent += row.join(",") + "\n";
    });

    const blob = Utilities.newBlob(csvContent, "text/csv", `${category}.csv`);
    DriveApp.createFile(blob);
  }

  SpreadsheetApp.getUi().alert("カテゴリごとのCSV出力が完了しました!(Googleドライブに保存済み)");
}
JavaScript

スクリプトの解説

上記スクリプトを簡単に説明すると

  • アクティブなシートの全データを取得
  • row[2](C列)をカテゴリとして分類
  • カテゴリごとにCSVファイルを作ってGoogleドライブへ保存

という内容の指示が書かれています。

エディタにスクリプトを入力して実行する

では、先ほど開いたApps Scriptのエディタ上にこのスクリプトを入力して、command+S(Windowsの場合はCtrl+S)で保存します。

すると、冒頭で定義したexportCSVByCategoryという関数名が画面上で選択できるようになります。

関数を選択

あとは、関数名の左側にある「▷実行」をクリックすればOKです。

出力完了のポップアップ

今回は実行完了後にポップアップが出るよう指示を書いているため、Googleスプレッドシート側では上の画像のようになりました。

Googleドライブを開いて、カテゴリ別のCSVファイルが保存されていることが確認できればこの試みは成功です!

注意点:スクリプト実行の初回のみ権限の承認が必要

スクリプトを初めて実行するときは、以下のような表示が出ます。

権限を承認

この先は「権限を承認」→Googleアカウントを選択と進んでください。

次に「このアプリはGoogleで確認されていません」というメッセージが出たら、「詳細」を開き「無題のプロジェクト※今回のプロジェクト名(安全ではないページ)に移動」をクリックします。

この手順でスクリプトの初回実行が開始できます。

Googleスプレッドシート上に実行ボタンをつくる

ここからはおまけですが、Googleスプレッドシート上に実行ボタンを設置する方法を紹介します。

Apps Scriptをいちいち開く手間さえ惜しいという方は、参考にしてみてください。

①ボタンとして使う図形を挿入

Googleスプレッドシートの「挿入」→「図形描画」で任意の図形を描いて「保存して閉じる」をクリックします。

するとシート上に図形が挿入されるので、適当な位置に置いてください。

Googleスプレッドシートに図形を挿入

例えばこんな感じにしてみます。

②挿入した図形にスクリプトを割り当てる

挿入した図形を選択すると図形の右上に「︙」マークが出ます。

このマークをクリック→「スクリプトを割り当て」→実行したい関数名(今回の例ではexportCSVByCategory)を選択します。

図形にスクリプトを割り当てる

これで、図形部分をクリックするとスクリプトが実行されるようになりました!

まとめ

今回はGoogle Apps Script(GAS)を使ってみよう!ということでGoogleスプレッドシート内の情報を分類して、複数のCSVファイルに出し分けるという作業をご紹介しました。

GASを使うと作業量を減らせるだけでなく、Googleのさまざまなサービスとも連携できます。ということは、使いこなせば可能性は無限大…

GASのような便利機能をどんどん使ってWeb制作やWebサイトの更新などをラクにしていきたいですね。

関連タグ