メインコンテンツへスキップ
見出し画像

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 #自動化入門

     
     
    高校教員(数学)|2歳児のパパ AIや学び直しを使って、自分でできることを増やしていく実践記録。AI・GAS・小規模アプリ、仕事の改善、お金の学び、子育てと習慣化について、実際に試して分かったことを発信しています。

    あなたへのおすすめ