LoginSignup
1
0

More than 1 year has passed since last update.

GASのここが好き!!【Google Apps Script】

Last updated at Posted at 2021-12-12

アドベントカレンダー企画で、GASについて書くことになったのですが、
なにを書こうか迷いに迷って結局GASを褒めるだけの記事にすることにしました🎅。

私はもともと組み込み系をずっとやってきたこともあって、WEB系のJS等よりもC言語やアセンブラなどの比較的に低級の言語ばかりに触れてきました。

今の会社に転職してから始めてGASに触れてその便利さやアウトプットのしやすさに感動しました。

今回は個人的にGASのステキだと思ったところをまとめていきます。

GASとは

そもそもGASとは何かというと、Googleが提供しているJavaScriptベースのスクリプト言語で、Google Apps Scriptの略です。
https://workspace.google.co.jp/intl/ja/products/apps-script/

Googleが開発・提供しているって時点で私にはぶっ刺さっているのですが、JavaScriptベースで書けるという点が刺さる人も多いのではないでしょうか。

GASはGoogle社のサーバで動作するので、ローカルで開発環境を構築する必要がないです。
さらに、スプレッドシートやスライド、GmailやGoogle DriveのGoogleのサービスに紐づけて処理をすることができる(というかそこがメイン)ので、すぐに明確なアウトプットをすることができるという楽しさもあります。

GASでできること

Googlebのサービスに紐づけて何でもできます。
もう少し真面目に例を挙げると・・・

1.スプレッドシートの内容をGmail、LINE、チャットワークに送る
2.Gmailで届いた内容をGoogleカレンダーにスケジュール登録する
3.フォーム入力者にメール送信
4.Google Driveのフォルダ整理、ファイル生成

などなど、言い出せばキリがないほど何でもできます。
しかもすぐにアウトプットできて、その結果を確認できるので書いていて楽しいです。

シリアルライターを通してCのコードをマイコンに書き込んで、デバッグ用のLEDが点滅するか見て・・・
みたいな地味なアウトプットの確認が、GASには必要ないんです。

GASの好きなところ

ということで、もうすでに色々と先走ってしまいましたがGASの好きなところを言っていきます。

JavaScriptベースで書ける

GASは完全オリジナルの言語ではなく、基本的にJSをベースにしているのでJSのコードが走ります。
基本的な組み込み関数や制御構文が一致しているので、困ったときはJSのリファレンスを見れば解決します。
JSにも転用が効くので、初めてプログラミングを始めるのにもおすすめの言語かなと思います。

コードはこんな感じで、とにかく書きやすい↓

サンプルプログラム1
function testFunc(){
  let strHello = "hello world!";
  let toDay = new Date;

  console.log(strHello +" 今日は"+ toDay.getDate() +"日です");
}
実行結果
11:25:27    hello world! 今日は12日です

Webアプリが作れる

Googleサーバーを使ってwebサーバーを立ち上げることもできるため、なんと簡易的なwebアプリも作ることができます
もちろんドメインやらの設定はできないため、社内でのみ使うサービス程度になりますが、これはVBA等にはない旨味です。
例えば、オリジナルの入力フォームをwebアプリ化して、入力された内容をスプレッドシートに記録するアンケートなども比較的に簡単に作成できます。

Googleサービスとの親和性が鬼高い

ここまで来るともはや説明不要ですが、とにかくGoogleのサービスと親和性が高いです。
だってGoogleが作っているんだから!

もちろん専用のライブラリも用意されており、非常に簡単に処理をすることができます。

アンケート回答済みかどうかを確認
function testForSpreadSheet(){
  let sheet = SpreadsheetApp.getActiveSheet()
  let allRange = sheet.getRange('A1:B11');
  let allrangeValue = allRange.getValues();

  let lastRow = allRange.getLastRow();

  for(let i=0;i<lastRow;i++){
    if(allrangeValue[i][1]==true){
      console.log('社員番号'+allrangeValue[i][0]+'はアンケート回答済み');
    }
  }
}
実行結果
11:21:33    情報  社員番号ID0001はアンケート回答済み
11:21:33    情報  社員番号ID0003はアンケート回答済み
11:21:33    情報  社員番号ID0006はアンケート回答済み
11:21:33    情報  社員番号ID0007はアンケート回答済み
11:21:33    情報  社員番号ID0009はアンケート回答済み
11:21:33    情報  社員番号ID0010はアンケート回答済み

スクリーンショット 2021-12-12 11.20.27.png

さぁ、GASを使ってどんどん仕組み化してきましょう!!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0