💬

GAS で躓いたメモ

2022/01/01に公開

概要

初めて GAS を触って、いくつか躓いたのでメモを残しておく。

URL クラスや URLSearchParams がない

JavaScript で API からデータを取得する場合、URL クラスと URLSearchParams クラスを使って URL を組み立て fetch 関数などを使うことが多い。
ただ、GAS では URL クラスと URLSearchParams クラスがなかったので 、クエリパラメーターをオブジェクトから作る関数を自作した。

const makeQueryString = (obj: object, encode: boolean = true): string => {
    return Object.keys(obj).map(key => {
        if (encode) {
            return `${key}=${encodeURIComponent(obj[key])}`;
        } else {
            return `${key}=${obj[key]}`;
        }
    }).join('&');
}

export default makeQueryString

環境変数は PropertiesService を使う

GAS で環境変数を使うには PropertiesService を使う。

const accessToken = PropertiesService.getProperty('ACCESS_TOKEN');

セルやカラムは 1 からスタート

セルにアクセスするために getRange メソッドが用意されているが、注意が必要である。
多くのプログラミング言語は、配列やリストの一番最初を 0 として扱う。そのため、 A1 セルを取得するためには getRange(0, 0) で良いと思ったがエラーになる。
getRange メソッドに渡す rowcolumn1 以上の値である必要がある。

const sheet = SpreadsheetApp.getActiveSheet();

const value = sheet.getRange(0, 0).getValue();  // NG
const value = sheet.getRange(1, 1).getValue();  // OK

sheet.getRange(1, 1)A1 セルにアクセスできる。

f5s4jihg0k1zlc84l55y73mygixm

Discussion