1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Apps Script(GAS)を基礎から学んでみた

Last updated at Posted at 2023-01-18

はじめに

組み込みエンジニアがGoogle Apps Script(以下GAS)を始めて学んでみました。
2023/1/18: 1.0.0:基本文法追加

目次

  1. GASとは?
  2. 基本文法
  3. メール送信
  4. まとめ

GASとは?

Googleが提供する各種サービスの自動化/連携を行うためのスクリプト作成ツール。

どんなことができるか?

1. googleフォームの回答をメールに自動送信する。
2. カレンダー情報をslackに通知する。
3. youtubeの情報を自動で収集(スクレイピング)

どうやって使うか?

1. googleスプレッドシート > 拡張機能 > Apps Script
2. スクリプトを書く
3. 保存(cntl+s)
4. 実行(cntl+r)

基本文法

コンソール表示
function myFunction() {
  console.log("hello" + 999 + 'world');
}

実行結果

22:10:14	情報	hello999world
変数・定数
function myFunction() {
  var a; //varとletどちらでもよい
  let b = 2/3*7; //自動で浮動小数点数型となるみたい
  const buf = "test"//constは定数
  console.log(a);
  console.log(b);
  console.log(buf);
}

実行結果

22:17:37	情報	undefined
22:17:37	情報	4.666666666666666
22:17:37	情報	test
配列
function myFunction() {
  let bufs = ["hello","world"];
  console.log(bufs[0] + bufs[1]);
  console.log(bufs.join(" new ")); //メソッドが色々とそろっている
  console.log(bufs.reverse().toString());
}

実行結果

22:33:21	情報	helloworld
22:33:21	情報	hello new world
22:33:21	情報	world,hello
オブジェクト(連想配列)
function myFunction() {
  let age = {
      "yamada":15,
      "suzuki":43,
      "tanaka":26,
  }
  console.log(age.suzuki);
  console.log(age.tanaka);
}

実行結果

22:38:02	情報	43
22:38:02	情報	26
制御構文(if/for)
function seigyokoubun() {
  let nums = [10, 20, 30, 40, 50];
  for (let i = 0; i < nums.length; i++) {
    if (i == 2)
      console.log(nums[i]);
  }

  for (let i in nums) { //配列の長さの取得が不要
    if (i == 1)
      console.log(nums[i]);
  }
  
  for (let num of nums) { //配列の要素を取得
    if (num == 50)
      console.log(num);
  }
}

実行結果

22:50:43	情報	30
22:50:43	情報	20
22:50:43	情報	50
関数
function factorial(num) { 
  let ret = 1;
  while (num) {
    ret *= num;
    num--;
  }
  return ret;
}
//アロー関数(以下)の記法も可能
//const  factorial = (num) =>{

function main() {
  //階乗を計算する関数呼び出し
  console.log(factorial(3));
  console.log(factorial(num=7));
}

実行結果

22:56:17	情報	6
22:56:17	情報	5040

メール送信

Gmail Serviceを活用する。

let to = `test@gmail.com`
let subject = `ここには件名が入ります`
let body =
`いつもお世話になっております。
○○株式会社の○○です。

内容

以上、よろしくお願いいたします。`
GmailApp.sendEmail(to, subject, body);

日時操作

let day = new Date();
day.setDate(day.getDate()+1); //1日後
day.setMonth(date.getMonth()+1); //1ヶ月後
day.setFullYear(day.getFullYear()-1); //1年前
let YYYYMMDD = Utilities.formatDate(day, 'JST', 'yyyy年MM月dd日'); //2023年01月23日形式

空白改行削除

function removespace(str) {
  return str.replace(/[\r\n]+/g, "").replace(" ", "").replace(" ", "");
}

参考

Gmail Service公式ドキュメント

まとめ

基本文法は他の言語とは変わらない。
変数のデータ型を意識せずに書けたりするので、初心者にはとっつきやすい言語だと感じた。

1
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?