【Bot作成】スプシでGASを書くときによく使う関数を6種類をまとめて紹介!【初心者】

こんにちは、JavaScriptが大好きな書川(かきかわ)です。
毎日の業務の中で、誰かがやらないといけないけど
続けていてもスキルアップにならないような作業ってありませんか?
僕はたくさんあるので、
自分の分身に仕事を任せてしまおう、そうしよう。
そういうふうに考えました。
ここでは、Googleのスプレッドシートで管理しているデータをもとに
次に起こすべきアクションや、進捗の確認を行えるようになるために解説します。
数学ができなくても、英語ができなくても、
好きな子に振られてしまった人も、ダイエットが続かない人も、
プログラミングと仲良くなれば
自分が落ち込んで仕事に手がつかない時も、
寝ている時もご飯を食べている時も
しっかりと代わりに仕事を片付けてくれます。
そんなプログラミング言語を扱えるようになるために、
これから始める方に向けて、普段からどんなコードを書いているかを紹介します。
過去にSlackに自動で通知する分身作っておりますのでぜひ見てあげてください。
良ければシェアして頂けると大変嬉しいです。
GASを始めるにあたってスクリプトエディタを最初に準備しなくてはいけません。
上の記事で紹介しており1分で準備出来るので、是非ご覧ください。
それでは早速、GASでコードを書くときによく使う関数を解説していきます。
スプレッドシートを読み込む方法3パターン
スプレッドシートを読み込む方法は僕が知り得る中で、3パターンあります。
どれを使っても結果に変わりはないので、好きなものを選んでください。
スプレッドシートのURLからスプレッドシートを読み込む。
◆SpreadsheetApp.openByUrl()
スプレッドシートはエクセルのようなソフトではなく、オンラインで管理しているのでURLがあります。
そのURLをGAS特有の関数内に入れて使う方法です。
そのままURLを入れてもいいのですが、一度変数にURLに入れてからだと
コードが整ってスッキリするかもしれません。
スプレッドシートのIDからスプレッドシートを読み込む関数3パターン。
◆SpreadsheetApp.openById()
次は、URLを使う方法にとても似ているやり方です。
スプレッドシートのURLにあるIDの部分だけを抜き出して、
GAS特有の関数内に入れて使う方法です。
アクティブになっているスプレッドシートを認識する。
こちらの場合は、コピペでURLやIDを認識させるのではなく、
アクティブになっているシートをスクリプトが判断して処理を実行します。
こちらも変数に入れてからGAS特有の関数内に入れて使うとスッキリするかもしれません。
シートを認識させる関数
◆getSheetByName(‘ [シート名]’);
シート認識する関数は、スプレッドシートを読み込む関数とペアで使われることが多いです。
セルの値を取得する関数
◆getRange(列, 行).getValue();
セルの名前は
・A,B,C,,,といった横列を「列」、「row(ロウ)」と呼び
・1,2,3,,,といった縦列を「行」、「column(カラム)」と呼びます。
実際に、A列1行目に何か文字を入力してみてください。
この関数の前に、シートを取得した関数を代入した変数を使うと見た目がスッキリします。
デバッグして、スクリプトの実行内容を確認する方法
例えば、上記のコードで変数A1に、セルのA列1行目の内容を代入するコードを書いたのですが、
その内容が複雑化してくると毎回セルの内容を確認するには時間が掛かることもあります。
その時にはログを確認することですぐに解決します。
以下のコードを先ほどのA1のコードに追記して、デバックを実行してみてください。
・デバックするには、虫マークをクリックしてください。

・その後にメニューの 「表示」 → 「ログ」 を実行してください。

僕はMacユーザーなのでMacよりの説明になりますが
もっと早くログの内容を見るには、
虫マークを押す → [ ⌘ + enter(return) ]
を実行してみてください。
AセルのA列1行目の内容が確認できましたか?
セルに値を入力する関数
◆getRange(row, column).setValue([入力したい値]);
セルを指定して、入力したい値を設定出来ます。
・値を取得するときは、[ getValue(); ]
・値を入力するときは、[ setValue(); ]
get と set を見間違えそうですね。
こちらを実行すると、セルA列の2行目に 「✔︎」 が入力されます。
最後の行を取得する方法2パターン
最後の行を取得できるようになると、自動化への道が開けてくるんです。
◆取得したい列の範囲を指定して、最終行を取得する方法
・filter(String) →指定した範囲の値が文字列であるものをフィルタリングします。
・length →要素数を取得します。
◆スプシの中の最終行を取得する。
これら二つの方法のどちらが良いかは決められませんが、
前者の方が列を指定できる分、処理が早くなりそうですよね。
ケースバイケースだと思います。
日付をクレンジングする方法
自動化するには、GASに人間が使う日付を理解させないといけない状況が出てきます。
以上が、僕がBotを初めて作る時に知りたかった6種類の関数です。
この記事が少しでもいいなぁと思ったら、
下にあるボタンからシェアしていただけると、ものすごく嬉しいです!
よろしくお願いします!