みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
初心者向けGoogle App Scriptのシリーズとして、Botを作成しながらGASプログラミングの基礎の基礎についてお伝えしています。
前回の記事はこちら。
GASのプログラミングで超重要なif文の使い方についてお伝えしました。
さて、今回ですが、Google Apps Scriptでスプレッドシートのセルに値を入力する方法です。
では、行ってみましょう!
前回のおさらい
まず、題材とするシートは以下のようなものです。
スクリプトとしては、2行目から下方向に走査して、D列の「isSend」の列に「TRUE」と入っていない行を見つけたら
- 名言を通知(今はログ出力としていますが)
- その行をのD列を「TRUE」と入力する
という動作を目指しています。
そして、前回までで作成したスクリプトはこちらです。
function myFunction() { const sheet = SpreadsheetApp.getActiveSheet(); const lastRow = sheet.getLastRow(); for(let i = 2; i <= lastRow; i++) { if(!sheet.getRange(i, 4).getValue()){ console.log(sheet.getRange(i, 1).getValue()); } } }
2行目から走査して、D列が「TRUE」でなければ、名言であるA列の値をログ出力する、というところまで作成しました。
なので、今回はD列に「TRUE」と入力するという処理を入れていきたいと思います。
setValueメソッドでセルに値を入力する
スプレッドシートのセルに値を入力するには、setValueメソッドを使います。
書き方はこうです。
ですから、D列(つまり、i行目の4列目)に真偽値「true」を入力するには、
sheet.getRange(i, 4).setValue(true);
とすればOKです。
全ての行に値を入力するスクリプト
つまり、全体のスクリプトとしてはこうですね。
function myFunction() { const sheet = SpreadsheetApp.getActiveSheet(); const lastRow = sheet.getLastRow(); for(let i = 2; i <= lastRow; i++) { if(!sheet.getRange(i, 4).getValue()){ console.log(sheet.getRange(i, 1).getValue()); sheet.getRange(i, 4).setValue(true); } } }
実行をすると、ログには以下のように「TRUE」とない行の名言が全てログ出力されます。
シートのほうは、以下のように全ての行について「TRUE」が入力された状態になります。
ちなみにこの処理、終わるのにそこそこ時間がかかります。
実は、セル1個1個に入力するというやり方は、処理に時間がかかるので、あまりおすすめできる方法ではないのです。
では、どうするか…?それについては、別の記事で紹介しますね。
ゲッターとセッターについて
以前の記事でお伝えしている通り、単体のセルから値を取得するにはgetValueメソッドを使いましたよね。
GASの場合は、プロパティを直接読み書きするということはあまりないんです。
プロパティを読み書きするためにget~というメソッドとset~というメソッドが対で用意されていることが多くあります。
これは、プロパティを直接いじりまくれると色々と安全じゃないこともあって、メソッドを経由していじれるところだけいじっていいようにするという思想でそうなっているんですね。
取得する系のメソッドをゲッター、セットする系のメソッドをセッターといったりもします。
この点、知っておくとメソッドを覚えやすいですよね。
ちなみに、getValuesメソッドもありましたね。
ということは、setValuesメソッドもあるのでは?と思った方は鋭いです。
ありますよ。機会があれば紹介していきますね。
まとめ
以上、Google Apps Scriptでスプレッドシートのセルに値を入力する方法についてお伝えしました。
setValueメソッドを使えばOKでしたね。
また、GASではゲッターとセッターがセットで用意されていることが多いということもお伝えしました。
豆知識として覚えておくと良いですね。
次回は、繰り返しのループを途中で終了する方法をお伝えします。
どうぞお楽しみに!
連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ
Google Apps Script(GAS)をはじめるためのメリットは山程ありますが、何を作ったらいいの?と悩んでしまうこともありますよね。そんな時に、おすすめしたいのが「Bot」の作成です。このシリーズでは、超初心者向けにGASでBotを作る方法を題材としながら、GASプログラミングの一通りの流れと書き方について学んでいきます。- 【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
- 【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する
- 【初心者向けGAS】プログラミングに必須の変数&定数の使い方とデータ型について
- 【初心者向けGAS】ログを表示するconsole.logの使い方とテンプレート文字列
- 【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
- 【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
- 【初心者向けGAS】スプレッドシートのシートを取得する2つの方法
- 【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
- 【初心者向けGAS】for文を使ったスプレッドシートの繰り返しの超基本
- 【初心者向けGAS】条件分岐をするif文の使い方の超基本
- 【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎
- 【初心者向けGAS】条件に応じてループを制御する2つの方法~break文とwhile文~
- 【初心者向けGAS】スプレッドシートのセル範囲を行数・列数を使って取得する
- 【初心者向けGAS】スプレッドシートのセル範囲をクリアするいくつかの方法
- 【初心者向けGAS】Google Apps ScriptでWeb APIを活用するための基礎知識
- 【初心者向けGAS】面倒なことはライブラリに任せよう!その概要と追加の方法
- 【初心者向けGAS】Chatworkのマイチャットにメッセージを送る最も簡単な例
- 【初心者向けGAS】Google Apps Scriptで別の関数を呼び出すfunctionの書き方
- 【初心者向けGAS】時限式のイベントトリガーを設置して決まった時刻にBotを送信する方法
- 【初心者向けGAS】プロパティストアの概要とスクリプトプロパティの編集方法
- 【初心者向けGAS】スクリプトプロパティを操作してそのデータを取り出す方法
- 【初心者向けGAS】スプレッドシートのセル範囲の値を二次元配列として取得して取り扱う方法
- 【初心者向けGAS】Chatworkのメッセージ記法でBot送信するメッセージを装飾する方法
- 【初心者向けGAS】Google Apps Scriptのドキュメンテーションコメントの書き方