⚔️

GASが最強のソリューションである!【基礎編】

2024/06/28に公開

はじめに

GASが好きです
今の会社に入って初めてGASを触りましたが、簡単にいろいろできるので感動しました
今回は基礎的な操作について書いていきます

GASってなに?

Google Apps Script(GAS)は、Googleのスクリプト言語であり、JavaScriptに基づいています
GASは、Google Workspaceアプリケーション(Google Sheets、Google Docs、Google Forms、Gmailなど)を自動化し、カスタマイズするための強力なツールです

by ChatGPT先生

そうです、GASとは強力なツールなのです
この記事を書き始めて初めて知りしましたが、Googleドキュメント・フォーム・Gmailも操作できるんですね、、
改めて強力なツールなのだと感じました!

今回、ここでいうGASはGoogleスプレッドシートを操作する話とさせてください

GASの基本操作

スクリプトエディタの開き方

  1. googleスプレッドシートを開く
  2. メニューから「拡張機能」 > 「Apps Script」を選択

これでスクリプトを書き始められます!
ようこそ、GASへ!

コンソールログ出力

function myFunction() {
  Logger.log('Hello, World!');
}

シートを取得する

シートを操作するにはまずはシートを取得しましょう!

  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getSheetByName('シート1'); // シート名を指定
  Logger.log(sheet.getName());

単一セルの値を取得

getRangeでセルを指定した後、getValueで値を取得

  const cellValue = sheet.getRange('A1').getValue(); // A1セルの値を取得
  Logger.log(cellValue);

単一セルに値を設定

getRangeで指定したセルにsetValueで値を設定

  sheet.getRange('A1').setValue('リンゴ'); // A1セルに'リンゴ'を設定

範囲のセルの値を取得

getRange(行番号, 列番号, 行数, 列数)で範囲を指定し、getValuesで2次元配列として値を取得

  const cellValues = sheet.getRange(1, 1, 10, 5).getValues(); // A1:E10セルの値を取得
  Logger.log(cellValues);

範囲のセルに値を設定

getRange(行番号, 列番号, 行数, 列数)で指定した範囲セルに、setValuesで2次元配列の値を設定
注意:getRangeに指定した行数・列数と設定する2次元配列の行数・列数が一致している必要あり

  sheet.getRange(1, 1, 10, 5).setValues(cellValues); // A1:E10セルに値を設定

で、GASの何が最強なわけ?

たとえば、こんな時

  • 月毎にファイルが分かれている売上データを1シートにまとめたい、けどめんどい
  • 連携データの抜けがないか、毎日わざわざ1つずつテーブル見に行くのはめんどい
  • とはいえ、プロダクトに盛り込むような機能ではない
  • サクッとなんか便利ツール、作れないかな

作れちゃうんです
そう、GASならね

  • 複数のシート、ファイルに分かれているデータを1シートにまとめるスクリプト
  • RedashやDatadogのAPIを叩いて、日次で実行トリガーを設定し、スプシ見れば常に最新情報の一覧になってる
  • スプレッドシートのIDを教えてもらえたら、スクリプトを相手に公開せずとも更新しに行くことも可能

ちょっとした社内ツールはもちろん、お客様に提供するレポートすらも組めちゃう
かゆいところに手が届く、効率爆上がりの最強ツールだと感じてます

さいごに

今回は基礎的な部分について書きました
今後はAPI叩く編とか書いていこうと思います

Goals Tech Blog

Discussion