GAS超初心者講座1:シートに名前を書いて返事を出す
はじめに
前回の記事では、GASで何を効率化するかを見つける考え方についてまとめました。
毎回やっている作業を書き出して、「表を見る」「条件で選ぶ」「通知する」あたりから始めると、GAS化しやすいという話でした。
ただ、そもそもGASを触ったことがないと、効率化のイメージも湧きにくいんですよね。
なので今回は、かなり初心者向けにいきます。
完成させるものはシンプルです。
A1セルに名前を書くと、B1セルにあいさつ文を返すGASです。
小さいですが、シートから値を読む、文字を組み立てる、シートに書き戻す、というGASの基本が入っています。

実際の画面・環境とは異なる場合があります。
まずシートを用意する
最初に、Googleスプレッドシートを1つ作ります。
シート名はそのままでも動きますが、今回は分かりやすく `練習` にしておきます。
A1セルに名前を書きます。
A1: 佐藤
B1: ここに返事が出るGASからA1の値を読み取り、B1へ「佐藤さん、こんにちは!」と書き込む流れです。
ポイントは、最初から大きな自動化を作らないことです。
まずは1セルを読んで、1セルへ書く。
ここだけでも、GASの入口としては十分だったりしますね。

実際の画面・環境とは異なる場合があります。
Apps Scriptを開いてコードを書く
スプレッドシートの上部メニューから、拡張機能、Apps Script の順に開きます。
エディタが開いたら、最初に入っているコードを消して、次のコードを貼り付けます。
function makeGreeting() {
// 今開いているスプレッドシートを取得する
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// 「練習」という名前のシートを取得する
const sheet = spreadsheet.getSheetByName('練習');
// A1セルに入力された名前を読む
const name = sheet.getRange('A1').getValue();
// 名前を使ってあいさつ文を作る
const message = `${name}さん、こんにちは!`;
// B1セルにあいさつ文を書き込む
sheet.getRange('B1').setValue(message);
}やっていることはかなり素直です。
`getActiveSpreadsheet()` で今のスプレッドシートを取得し、`getSheetByName('練習')` で対象シートを選びます。
そのあと `getRange('A1').getValue()` でA1を読み、`setValue()` でB1へ書き込みます。
GASは、この `getValue()` と `setValue()` を理解すると一気に見通しが良くなります。
多くの自動化は、読む、加工する、書く、の組み合わせでできています。

実際の画面・環境とは異なる場合があります。
実行して結果を確認する
コードを保存したら、関数名が `makeGreeting` になっていることを確認して、実行ボタンを押します。
初回は権限の確認が出ます。
自分のスプレッドシートを操作するための確認なので、内容を見て許可します。
実行が終わったら、スプレッドシートに戻ってB1セルを見ます。
佐藤さん、こんにちは!このように表示されていれば成功です。
たった1セルですが、シートの情報を読み取って、GASが別のセルへ結果を書いたことになります。
もし動かない場合は、まずシート名を確認します。
コードでは `練習` という名前のシートを探しているので、シート名が違うと止まります。
次に、A1が空になっていないかも見ます。
最初の練習では、原因を複雑にしないのが大事です。
慣れてきたら、A2、B2のようにセル位置を変えたり、複数行へ広げたりします。
まず1行で動くものを作る。
まとめ
最初のGASは、シートから1つ値を読んで、1つ書き戻すだけで十分
`getRange('A1').getValue()` でセルの値を読む
`setValue()` でセルに値を書き込む
シート名がコードと合っているかを必ず確認する
小さく動かしてから、行数や処理を増やしていく
【今日の私のひとこと】
次は、「GAS超初心者講座2:一覧表から未対応だけを抜き出す」を予定しています。
今回の流れを少し広げて、一覧表から条件に合う行を見つけるところまで進めます。
#GoogleAppsScript #GAS #業務効率化 #スプレッドシート #note #GAS初心者 #AppsScript #GoogleWorkspace #自動化入門
