この記事では、GASの本格的な自動化の前に、まずはコンピュータが情報をどう扱っているかの「基本ルール」を学ぶ必要があります。それが今回解説する「データ型」と「演算」です。
難しく聞こえるかもしれませんが、これは「数字」と「文字」をどう区別するか、「足し算」や「引き算」をどう命令するか、というシンプルな決まりごとです。ここを押さえると、今後の学習がぐっと楽になります。
データ型について
データ型とは?
「データ型」とは、その言葉の通り「データの種類」のことです。
私たちは普段、「100」という数字と、「こんにちは」という文字を、意識せずに別のものとして認識しています。
GAS(プログラミング)でも、コンピュータに「これは数字です」「これは文字です」と正しく認識させる必要があります。
なぜなら、データの種類によって、できることが違うからです。 例えば、「数値」なら足し算や引き算ができますが、「文字列」(文字)に「掛け算」をすることはできません。
このように、GASが扱う情報の「分類」のことをデータ型と呼びます。
GASの主なデータ型
GAS(が利用するJavaScriptという言語)には、いくつかの基本的なデータ型があります。 初心者のうちに覚えておきたい、主なデータ型を順番に見ていきましょう。
数値型(Number)とは?
数値型は、その名の通り「数字」を扱うための型です。 GAS(JavaScript)では、10 のようなキリの良い「整数」も、3.14 のような「小数点以下の数(浮動小数点数)」も、区別なく同じ「数値型」として扱われます。
数値型の最大の特徴:計算ができる
数値型の最大の特徴は、足し算(+)や引き算(-)、掛け算(*)、割り算(/)などの「計算(演算)」ができることです。
そして、ここで最も重要なルールが一つあります。
それは、「数値型として扱う数字は、" や ' で囲まない」ということです。
もし "100" のように囲んでしまうと、それは「数値」ではなく「文字列(文字)」として扱われるため、意図した通りの計算ができなくなる場合があります。
console.log で数値の計算を試してみよう
console.log() を使って、数値型がどのように計算されるかを確認してみましょう。 以下のコードを function myFunction() { ... } の中に貼り付けて実行してみてください。
function myFunction() {
// 1. 整数同士の計算
console.log(100 + 50);
// 2. 整数と小数点の計算
// 消費税10%をかける計算 (1.1倍する)
console.log(1000 * 1.1);
// 3. 複雑な計算(計算の優先順位も算数と同じです)
// (5 + 5) を先に計算してから 10 を掛けます
console.log( (5 + 5) * 10 );
// 4. (比較) もし数字を「文字列」として扱うと…
console.log("100" + "50");
}
実行ログの確認
これを実行して「実行ログ」を見ると、以下のように表示されるはずです。
情報1 150
情報2 1100
情報3 100
情報4 10050
注目すべきは、4番目の結果です。
100 + 50 (数値型)は 150 と正しく計算されました。
しかし、"100" + "50" (文字列型)は、計算ではなく「文字の連結」として扱われ、「100という文字」と「50という文字」がくっついて 10050 という「文字列」になってしまいました。
このように、GASにスプレッドシートの数値を計算させるなど、意図した通りの計算をさせるためには、" や ' で囲まない「数値型」としてデータを扱うことが非常に重要です。
文字列型(String)とは?
文字列型とは、簡単に言えば「文字」のデータです。 「こんにちは」といった挨拶、「Google Apps Script」という名前、スプレッドシートの「A1」というセル番地など、コンピュータに「文字」として認識させたいデータは、すべてこの文字列型を使います。
文字列型の絶対的なルール:「引用符」で囲む
数値型と文字列型を区別する、最も重要で絶対的なルールがあります。 それは、文字列は必ず " (ダブルクォーテーション) または ' (シングルクォーテーション) で囲む、という決まりです。
100 は数値型ですが、"100" は文字列型です。 コンピュータはこれらを全く別のものとして認識します。
" と ' の使い分け
" と ' は、どちらを使っても構いません。 ただし、以下のように「文字列の中で、もう一方の引用符を使いたい」場合に便利です。
"Google's service"(シングルクォートの中でアポストロフィを使いたい)"彼は 'こんにちは' と言った"(ダブルクォートの中でシングルクォートを使いたい)
どちらかで始めて、必ず同じもので閉じる、というルールさえ守れば大丈夫です。
文字列型の演算:「連結」
数値型は + を使うと「足し算」になりました。 文字列型で + を使うと、「文字列同士をくっつける(連結する)」という意味の処理になります。
console.log で文字列の「連結」を試してみよう
実際にコードを書いて、文字列の動作を確認しましょう。
function myFunction() {
// 1. 基本的な文字列の連結
console.log("Google" + "Apps" + "Script");
// 2. 間にスペース(空白)を入れる
// スペースも「空白という一文字」として扱います
console.log("Google" + " " + "Apps" + " " + "Script");
// 3. (重要) 数値の「計算」と文字列の「連結」の比較
console.log(100 + 50); // 150 (数値の計算)
console.log("100" + "50"); // "10050" (文字列の連結)
// 4. (超重要) 文字列と数値を + でつなぐとどうなるか
// どちらか一方が文字列の場合、すべて「文字列の連結」が優先されます
console.log("シート名:" + 1);
console.log("A" + 10); // A10というセル番地を作る時などによく使います
console.log(100 + "円");
}
実行ログの確認
これを実行して「実行ログ」を見ると、以下のように表示されます。
情報1 GoogleAppsScript
情報2 Google Apps Script
情報3 150
情報3 10050
情報4 シート名:1
情報4 A10
情報4 100円
3番目の比較で分かる通り、100 + 50 は計算されて 150 になりましたが、"100" + "50" は文字として連結され 10050 になりました。
そして4番目が非常に重要です。 "A" + 10 のように、文字列型と数値型を + でつなごうとすると、GAS(JavaScript)は「あ、これは連結だな」と判断し、数値の 10 を自動的に文字列の "10" に変換してから連結します。 その結果、"A10" という文字列が出来上がります。
これは、スプレッドシートの特定のセル(例:「A」列の「10」行目)を指定する際など、GASで自動処理を作る上で頻繁に使うテクニックです。
「+ は、数値だけなら計算、文字が混ざれば連結」と覚えておきましょう。
論理値(Boolean)とは? 2択だけの特別なデータ
論理値とは、簡単に言えば「はい(Yes)」か「いいえ(No)」の2択だけを扱うための特別なデータ型です。
GAS(JavaScript)では、この2択を true(トゥルー:真・正しい)と false(フォールス:偽・間違い)という2つの専用の言葉で表します。
文字列型の "true" とは全く違い、true や false は " や ' で囲まずにそのまま書きます。これが論理値の大きな特徴です。
論理値は何に使うの?
初心者のうちは「true や false なんて、何に使うの?」と疑問に思うかもしれません。
論理値は、プログラミングが「何かを判断する」ときに必ず使われます。 例えば、GASで自動化を行う際には、以下のような「判断」がたくさん発生します。
- 「もし、A列の値が100以上だったら」 → B列に「OK」と入力する
- 「もし、チェックボックスがオンになっていたら」 → メールを送信する
- 「もし、今日の日付が月曜日だったら」 → 特定のシートをコピーする
この「もし、A列の値が100以上だったら」という問いかけ(条件)に対して、コンピュータが出す答えが true(はい、100以上です)または false(いいえ、100未満です)なのです。
論理値は、この後のステップで学ぶ「条件分岐」という処理の「判断材料」として、非常に重要な役割を果たします。
論理値が生まれる仕組み:「比較演算子」
では、true や false はどうやって生まれるのでしょうか。 もちろん console.log(true) のように直接書くこともできますが、多くの場合、「比較」の結果として生まれます。
計算に使う + や * を「算術演算子」と呼んだのに対し、「2つの値を比べる」ための記号を「比較演算子」と呼びます。
比較演算子を使った処理(比較演算)の結果は、数値にはならず、必ず true か false のどちらかの論理値になります。
まずは、よく使う比較演算子を覚えましょう。
| 意味 | 演算子 | 例 | 結果 |
| 等しい | == | 10 == 10 | true |
| 等しくない | != | 10 != 5 | true |
| より大きい | > | 10 > 5 | true |
| より小さい | < | 10 < 5 | false |
| 以上 | >= | 10 >= 10 | true |
| 以下 | <= | 10 <= 5 | false |
(注意点として、「等しい」を表す記号は = ではなく== と2つ重ねるルールがあります。これは非常に重要なので覚えておきましょう。)
console.log で論理値を試してみよう
実際にコードを書いて、比較演算の結果が論理値になることを確認してみましょう。
function myFunction() {
// 1. 論理値をそのままログに出力する
console.log(true);
console.log(false);
// 2. 数値の比較 (結果は true か false になる)
console.log(10 > 5); // 10は5より大きいですか? → はい(true)
console.log(10 < 5); // 10は5より小さいですか? → いいえ(false)
console.log(100 == 100); // 100と100は等しいですか? → はい(true)
// 3. 文字列の比較
console.log("GAS" == "GAS"); // この2つの文字列は等しいですか? → はい(true)
console.log("GAS" == "Excel"); // この2つの文字列は等しいですか? → いいえ(false)
console.log("A" != "B"); // AとBは等しくないですか? → はい(true)
// 4. (比較) 文字列の"true"と論理値のtrueは別物
console.log(true); // 論理値
console.log("true"); // 文字列
}
実行ログの確認
これを実行して「実行ログ」を見ると、以下のように表示されます。
情報 true
情報 false
情報 true
情報 false
情報 true
情報 true
情報 false
情報 true
情報 true
情報 true
このように、10 > 5 と書いた行は true と表示され、10 < 5 と書いた行は false と表示されているのが分かりますね。
今は「ふーん、true と false という2択の答えがあるんだな」「> や == を使うと、その答え(論理値)が得られるんだな」という点だけ理解しておけば完璧です。
null(ヌル)とは? 「何もない」ことを示す特別な値
「null」は、これまで学んだ数値や文字列とは大きく異なる、非常に特殊なデータ型です。
これは、プログラミングの世界において「(意図的に)値が存在しない」「空っぽである」という「状態」を示すための特別な値です。
「データがない」ことを示すためのデータ、と考えるとイメージしやすいかもしれません。
nullは何に使うの?
初心者のうちは、null を自分で積極的に使う場面は少ないかもしれません。しかし、GASが返す結果を理解したり、特定の状態を表現したりするために重要になります。
例えば、以下のような場面で登場します。
- 意図的に「空」を表現したい時 一度データ(例:数値の
100)を入れたものを、後から「リセットして空に戻したい」という場合などに、nullを設定することがあります。 - 他のシステムとの連携(将来的に) GASが他のWebサービス(API)と通信した際、相手のサービスが「該当するデータはありませんでした」という意味で
nullを返してくることがあります。
null と "" (空文字) や 0 の違い
ここで重要なのは、null は「空っぽの文字("")」とも「数字のゼロ(0)」とも明確に違う、ということです。
0は、「ゼロという数値」がちゃんと存在します。""は、「長さが0の文字」がちゃんと存在します。nullは、「そもそも、値そのものが存在しない」という状態を表します。
これらはすべて異なるデータとして区別されます。
undefined との違い
null と非常によく似たものに undefined(アンディファインド:未定義)があります。この2つはよく混同されますが、ニュアンスが異なります。
null: 開発者が「意図的に、ここには値がない」と設定した「空っぽ」の状態。undefined: 「まだ何も設定されておらず、値が決まっていない」状態。
現時点では、「どちらも『何もない』状態を表すが、null は意図的な空、undefined は未設定、という違いがある」と覚えておけば十分です。
console.log で null を試してみよう
null がどのようなものか、他の「空」に見える値と比較しながらログに出力して確認してみましょう。
function myFunction() {
// 1. nullをそのままログに出力する
console.log(null);
// 2. (比較) 空文字("")との違い
// ログには何も表示されない(空白の行)ように見えます
console.log("");
// 3. (比較) 数字の0との違い
console.log(0);
// 4. (参考) null同士が等しいか比較する
// 「値がない状態」と「値がない状態」は等しいですか? → はい(true)
console.log(null == null);
// 5. (参考) nullと空文字は等しくないか比較する
console.log(null == ""); // → いいえ(false)
// 6. (参考) nullと0は等しくないか比較する
console.log(null == 0); // → いいえ(false)
}
実行ログの確認
これを実行すると、実行ログには以下のように表示されます。
情報1 null
情報2
情報3 0
情報4 true
情報5 false
情報6 false
2番目の「空文字」の結果は、ログ上では何も表示されていない(空白の行)に見える点に注目してください。 null は null という文字が表示されますが、"" は本当に何もない文字として表示されます。
null は、エラーの原因を探ったり、特定の状態(データが見つからなかったなど)を判定したりする際に使われます。「意図的な『無』を表す値」と覚えておきましょう。
undefined(アンディファインド)とは? 「未定義」を示す特別な値
「undefined」は、その名の通り「まだ定義されていない(決まっていない)」という「状態」を示す、GAS(JavaScript)の特別な値です。
前回のnullは、開発者が「意図的に、ここは空っぽ(null)です」と設定した状態でした。 それに対し、undefinedは「そもそも何も設定されておらず、手がつけられていない」状態を指します。
undefinedはどんな時に発生する?
初心者のうちは、undefinedに遭遇する場面はまだ少ないかもしれません。
このundefinedは、今後「変数」というデータを保存する箱を学ぶときに頻繁に登場します。 例えば、「箱(変数)は用意したけれど、まだ中に何も入れていない」という状態の時、その箱の中身は自動的にundefinedになります。
現時点では、nullが「意図的な空」であったのに対し、undefinedは「本当に何も設定されていない、未設定の状態」を表す言葉、と覚えておけば大丈夫です。
null と undefined の重要な関係
null(意図的な空)とundefined(未設定)は、意味合いは異なりますが、どちらも「値が存在しない」という点では似ています。
そのため、GAS(JavaScript)には少し変わったルールがあります。
==(等しい)という比較演算子でこの2つを比べると、「どちらも『無い』状態だね」と判断され、true(等しい)という結果が返ってきます。
console.log で undefined を試してみよう
undefinedがどのような値か、特にnullとの比較に注目しながらログで確認してみましょう。
function myFunction() {
// 1. undefinedをそのままログに出力する
console.log(undefined);
// 2. undefined同士を比較する
console.log(undefined == undefined); // → はい(true)
// 3. (超重要) undefined と null を比較する
// 「==」で比較した場合、この2つは「等しい」と判定されます
console.log(undefined == null); // → はい(true)
// 4. (参考) 「===」という厳密な比較を使った場合
// 「===」はデータ型も厳密に比較します
// 「undefined型」と「null型」は違う型なので、「等しくない(false)」と判定されます
console.log(undefined === null); // → いいえ(false)
}
実行ログの確認
これを実行すると、実行ログには以下のように表示されます。
情報1 undefined
情報2 true
情報3 true
情報4 false
3番目の undefined == null が true になっていることが確認できますね。
今は「==」と「===」の違いを完璧に理解する必要はありません。 まずは、「null(意図的な空)とundefined(未設定)という、2種類の『無い』状態があるんだな」「==で比べると、この2つは同じものとして扱われるんだな」という点だけ押さえておきましょう。
配列(Array)とは? データを順番に並べた「リスト」
数値や文字列は、1つのデータしか扱えませんでした。 しかし、スプレッドシートのA列の1行目から10行目まで、のように「複数のデータ」をまとめて扱いたい場面は非常に多いです。
そんな時に使うのが「配列」です。
配列とは、複数のデータを [] (角括弧) の中に入れ、カンマ , で区切って「順番に並べたリスト」のことです。
[1, 2, 3, 4, 5] ["りんご", "バナナ", "みかん"] ["A", 123, null, true] // 異なるデータ型も一緒に入れられます
配列の最大の特徴:「インデックス番号」で管理する
配列の最大の特徴は、格納されたデータが「インデックス番号」という「住所」のようなもので管理されている点です。
ここで、プログラミング特有の非常に重要なルールがあります。
それは、「インデックス番号は 0 から始まる」というルールです。
例えば、["りんご", "バナナ", "みかん"] という配列があった場合:
0番目のデータは"りんご"1番目のデータは"バナナ"2番目のデータは"みかん"
となります。「1番目」がインデックス 0 になる、という感覚に慣れることが重要です。
配列のデータを取り出す方法
配列から特定のデータを取り出すには、配列[インデックス番号] という書き方をします。
例えば list = ["りんご", "バナナ", "みかん"] という配列があったとして、 list[1] と指定すれば、"バナナ" を取り出すことができます。
console.log で配列を試してみよう
実際にコードを書いて、配列の作り方とデータの取り出し方を確認してみましょう。
function myFunction() {
// 1. 3つの文字列が入った配列
let fruits = ["りんご", "バナナ", "みかん"];
// 2. 配列全体をログに出力してみる
console.log(fruits);
// 3. 配列から「0番目」のデータを取り出す
// "りんご" が表示されます
console.log(fruits[0]);
// 4. 配列から「2番目」のデータを取り出す
// "みかん" が表示されます
console.log(fruits[2]);
// 5. (参考) 配列の「長さ(個数)」を調べる
// .length を使うと、データが何個入っているかを調べられます
// この場合、3個なので 3 が表示されます
console.log(fruits.length);
}
実行ログの確認
これを実行すると、実行ログには以下のように表示されます。
情報2 [りんご, バナナ, みかん]
情報3 りんご
情報4 みかん
情報5 3
fruits[0] で りんご が、fruits[2] で みかん が取り出せていることが確認できますね。
なぜ配列が重要なのか?
GASでスプレッドシートを操作する際、例えば getValues() という命令(メソッド)を使うと、シートの複数セルの値は、必ずこの「配列」の形で取得されます。
例えば、A1セルからB2セルまでの4つのセルの値を取得すると、 [ ["A1", "B1"], ["A2", "B2"] ] という「配列の中に、さら配列が入った」二次元配列という形でデータが渡されます。
配列を理解することは、GASでスプレッドシートのデータを自由に読み書きするための第一歩です。 まずは「[] で囲んだリスト」「番号は 0 から始まる」という2点だけ、しっかり覚えておきましょう。
オブジェクト(Object)とは? 「ラベル付き」でデータを管理する箱
配列は、複数のデータを「順番(0, 1, 2…)」で管理するリストでした。 それに対し、「オブジェクト」は、データに「名前(ラベル)」を付けて管理する、いわば「名札付きのデータの集まり」です。
オブジェクトは {} (波括弧) を使って定義します。 そして、{ ラベル名: データ, ラベル名: データ } という形式で、データに名前を付けて格納します。
この「ラベル名」のことを、専門用語で「キー」または「プロパティ」と呼びます。
// 「個人情報」をオブジェクトで管理する例
{
name: "Taro",
age: 25,
isStudent: true
}
この例では、"Taro" という文字列に name というラベルを、25 という数値に age というラベルを、true という論理値に isStudent というラベルを付けて、一つの {} の中にまとめています。
オブジェクトと配列の使い分け
配列(リスト)は、データに順番がある場合に適しています。 例:["りんご", "バナナ", "みかん"]
オブジェクトは、データに「意味」を持たせたい場合に適しています。 例:{ name: "Taro", age: 25 } (["Taro", 25] という配列よりも、name が Taro で age が 25 だ、と意味が明確になりますよね)
オブジェクトのデータを取り出す方法
オブジェクトから特定のデータを取り出すには、2つの方法があります。
オブジェクト.ラベル名(ドット記法)オブジェクト["ラベル名"](ブラケット記法)
オブジェクト.ラベル名 (ドット記法) の方がシンプルでよく使われます。
// user という名前のオブジェクト
let user = { name: "Taro", age: 25 };
// 1. ドット記法で "Taro" を取り出す
console.log( user.name );
// 2. ブラケット記法で 25 を取り出す
console.log( user["age"] );
console.log でオブジェクトを試してみよう
実際にコードを書いて、オブジェクトの作り方とデータの取り出し方を確認してみましょう。
function myFunction() {
// 1. 「商品」の情報をオブジェクトで作成
let item = {
productName: "リンゴ",
price: 150,
from: "青森県"
};
// 2. オブジェクト全体をログに出力してみる
console.log(item);
// 3. ドット記法で「商品名」を取り出す
// "リンゴ" が表示されます
console.log(item.productName);
// 4. ドット記法で「価格」を取り出す
// 150 が表示されます
console.log(item.price);
// 5. (参考) オブジェクトのデータを変更・追加する
item.price = 200; // 価格を200円に変更
item.isSoldout = false; // "isSoldout" という新しいキーとデータを追加
// 変更・追加されたオブジェクト全体を確認
console.log(item);
}
(※ let item = ... も「変数」という機能です。今はオブジェクトに名前を付けている、と理解してください。)
実行ログの確認
これを実行すると、実行ログには以下のように表示されます。
情報2 {productName=リンゴ, from=青森県, price=150}
情報3 リンゴ
情報4 150
情報5 {price=200, productName=リンゴ, from=青森県, isSoldout=false}
item.productName で リンゴ が取り出せていること、さらに5番目の処理で price が 200 に変更され、isSoldout が追加されているのが確認できますね。
オブジェクトは、GASがGoogleカレンダーの予定を扱う時や、Gmailの情報を扱う時など、さまざまな場面で「ラベル付きのデータ(プロパティ)」として登場します。
「{} で囲む」「ラベル名: データ のセット」「オブジェクト.ラベル名 で取り出す」という3点を押さえておきましょう。
エスケープシーケンスとは?
文字列型を扱う上で、少し特殊なテクニックとして「エスケープシーケンス」というものがあります。
これは、通常の文字列ではそのまま入力・表現することが難しい「特別な文字」を扱うための書き方です。
例えば、文字列の中で「改行」を入れたい場合や、文字列を囲むために使っている " (ダブルクォーテーション) という記号そのものを「文字」として扱いたい場合があります。
そのような場合に、\ (バックスラッシュ、または円マーク) と特定の文字を組み合わせることで、「これは特別な意味ですよ」とGASに伝えることができます。
代表的なエスケープシーケンス
エスケープシーケンスには様々な種類がありますが、初心者の皆さんがまず覚えておくと便利なのは、以下のものです。
\n: 改行 これを使うと、ログやセル内などで文字列を改行させることができます。\": ダブルクォーテーション 文字列を"で囲んでいる時に、その文字列の「中身」として"を使いたい場合に使用します。\': シングルクォーテーション 文字列を'で囲んでいる時に、その文字列の「中身」として'を使いたい場合に使用します。\\: バックスラッシュ(円マーク)\という記号そのものを文字として使いたい場合に使用します。(\はエスケープシーケンスの開始記号なので、\自体もエスケープする必要があります)
画像にある \r (復帰) や \f (改ページ) なども存在しますが、GASでスプレッドシートやドキュメントを操作する上では、まずは \n (改行) と引用符のエスケープを覚えておけば十分です。
なぜ引用符のエスケープが必要か?
例えば、"彼は "すごい!" と言った" という文字列を作りたいとします。 しかし、GASは " が来た時点で「文字列の始まり(または終わり)」と認識するため、"彼は " の部分で一度文字列が終わり、すごい! という謎の命令が来たと勘違いしてエラーになってしまいます。
これを避けるため、"彼は \"すごい!\" と言った" と書きます。 こうすることで、\" の部分は「文字列の終わりではなく、ただの ” という文字ですよ」とGASに伝えることができます。
console.log でエスケープシーケンスを試してみよう
実際にコードを書いて、エスケープシーケンスの動作を確認してみましょう。
function myFunction() {
// 1. \n を使った「改行」
// ログで2行にわたって表示されます
console.log("こんにちは。\nGASの世界へようこそ。");
// 2. \" を使った「ダブルクォーテーション」の表示
// "彼は "すごい!" と言った" と表示されます
console.log("彼は \"すごい!\" と言った");
// 3. (参考) シングルクォートの中でシングルクォートを使う
// "It's a pen." と表示されます
console.log('It\'s a pen.');
// 4. (参考) 違う種類の引用符で囲めばエスケープは不要
// この書き方でも "It's a pen." と表示されます
console.log("It's a pen.");
// 5. \\ を使った「バックスラッシュ」の表示
// "C:\Program Files" のように表示されます
console.log("C:\\Program Files");
}
実行ログの確認
これを実行すると、実行ログには以下のように表示されます。
情報1 こんにちは。
GASの世界へようこそ。
情報2 彼は "すごい!" と言った
情報3 It's a pen.
情報4 It's a pen.
情報5 C:\Program Files
ログを見ると、\n の部分でしっかり改行され、\" や \' が文字として表示されているのが分かりますね。
特に \n (改行) は、スプレッドシートのセル内で改行を入れたい場合(setValue() を使う時など)にもそのまま使える、非常に便利なテクニックです。
コードに「メモ書き」を残す方法:コメントとは?
プログラミングを書いていると、「このコードは何のために書いたんだっけ?」「後でここを修正しよう」といった「メモ書き」を残したくなります。
そんな時に使うのが「コメント」機能です。
コメントとは、GAS(コンピュータ)がプログラムを実行する際に「完全に無視する」、人間のためのメモ書きです。 コメントを書いても、プログラムの実際の動作には一切影響を与えません。
コメントには、主に2つの重要な役割があります。
- コードが何をしているのか、将来の自分や他の人が読んでも分かるように説明を残す。
- 一時的にコードの一部を「無効化」して、動作をテストする(デバッグ)。
GASには、大きく分けて2種類のコメントの書き方があります。
1. 行コメント ( // )
// (スラッシュ2つ) を書くと、そこから右側の、その行の終わりまでが全てコメントとして扱われます。 1行だけの短いメモや、コードのすぐ右側に簡単な説明を加えたい場合に非常に便利です。
例: // これは1行コメントです。 console.log("これは実行されます"); // この部分はコメントなので無視されます。
2. ブロックコメント ( /* … */ )
/* (スラッシュとアスタリスク) で始まり、*/ (アスタリスクとスラッシュ) で終わる書き方です。 この /* と */ で囲まれた範囲すべてが、複数行にわたっていても、まとめてコメントとして扱われます。
複数行にわたる詳しい説明を書きたい場合や、コードの広い範囲を一時的にまとめて無効化したい場合に便利です。
例:
/*
ここはブロックコメントです。
複数行にわたって
メモを残すことができます。
*/
console.log でコメントの動作を確認しよう
console.log を使って、コメントが本当に「無視」されるのかを確認してみましょう。
function myFunction() {
// 1. この行は実行されます
console.log("A: このメッセージはログに表示されます。");
// 2. 「行コメント」で無効化されたコード
// 以下の行は // が付いているため実行されません
// console.log("B: このメッセージは表示されません。");
// 3. 「ブロックコメント」で無効化されたコード
/*
console.log("C: このメッセージも表示されません。");
console.log("D: こちらも表示されません。");
*/
// 4. この行は実行されます
console.log("E: 処理が完了しました。");
}
実行ログの確認
これを実行して「実行ログ」を見ると、以下のように表示されます。
情報1 A: このメッセージはログに表示されます。
情報4 E: 処理が完了しました。
ログを見ると、// や /* */ で囲まれた console.log (B, C, D) は実行されず、ログに何も出力されていないことが分かりますね。
このように、コメントはプログラムの動作に影響を与えることなく、コードを分かりやすく管理するために非常に重要な機能です。 最初は面倒に感じるかもしれませんが、後からコードを見返したときに「あの時の自分、ありがとう!」と思えるように、簡単なメモでも残す習慣をつけておくことをお勧めします。
演算について
演算(えんざん)とは?
「データ型」で情報の種類について学んだ次は、それらのデータを使って「処理」を行う方法を学びましょう。この「処理」のことを「演算」と呼びます。
演算で一番わかりやすいのが、算数で行う「計算」です。 GASでは、計算などを行うときに、+ や - といった専用の記号を使います。この記号のことを「演算子」と呼びます。
演算子には、計算に使う「算術演算子」、値を比べる「比較演算子」(true false の記事で少し触れましたね)、条件を組み合わせる「論理演算子」などがありますが、今回はその基本となる「算術演算子」について詳しく解説します。
算術演算子とは?
算術演算子とは、一言でいえば「算数・数学の計算をするための記号」です。 足し算、引き算、掛け算、割り算など、私たちが日常的に使う計算をGASに命令するために使います。
GASで使われる主な算術演算子は以下の通りです。
加算(+)
「足し算」を行う演算子です。 これは直感的で分かりやすいですね。
5 + 3(整数同士の足し算)1.2 + 4.3(小数点以下の足し算)10 + (-4)(負の数との足し算)
(復習) なお、この + 記号は、データ型が「文字列型」の場合は「連結」という意味になる、という重要なルールがありましたね。
減算(-)
「引き算」を行う演算子です。 これも算数と同じように使えます。
5 - 3(整数同士の引き算)1.2 - 4.3(結果がマイナスになる小数点の引き算)10 - (-4)(負の数を引く=足し算になります)
乗算(*)
「掛け算」を行う演算子です。 ここで注意が必要です。算数の「×」記号ではなく、キーボードの「*」(アスタリスク)を使います。
5 * 3(5かける3)1.2 * 4.3(小数点以下の掛け算)10 * (-4)(負の数との掛け算)
除算(/)
「割り算」を行う演算子です。 これも注意が必要で、算数の「÷」記号ではなく、キーボードの「/」(スラッシュ)を使います。
5 / 3(割り算)1.2 / 4.3(小数点以下の割り算)10 / (-4)(負の数での割り算)
(補足) プログラミングでは、0 で割ることはできません。もし 10 / 0 のような計算を実行すると、結果は Infinity(無限大)という特別な値になります。
剰余(%)
「剰余(じょうよ)」は、あまり馴染みがないかもしれませんが、「割り算をした結果の『余り』だけを求める」演算子です。 記号は「%」(パーセント)を使いますが、パーセント計算(100分率)ではない点に注意してください。
5 % 3(5割る3は、商が1で、余りが2なので、結果は2になります)10 % 2(10割る2は、商が5で、余りが0なので、結果は0になります)10 % 3(10割る3は、商が3で、余りが1なので、結果は1になります)
これは、ある数値が「偶数」か「奇数」か(2 で割った余りが 0 かどうか)を判定するときなどによく使われます。
べき乗(**)
「べき乗」は、「同じ数を繰り返し掛ける」計算(累乗)を行う演算子です。 * を2つ続けます。
2 ** 3(「2の3乗」という意味。2 * 2 * 2と同じで、結果は8になります)5 ** 2(「5の2乗」という意味。5 * 5と同じで、結果は25になります)
console.log で算術演算子を試してみよう
では、これらの計算を実際に console.log を使って実行してみましょう。
function myFunction() {
// 1. 加算
console.log("5 + 3 = " + (5 + 3) ); // 括弧で計算を先に実行させます
// 2. 減算
console.log("10 - (-4) = " + (10 - (-4)) );
// 3. 乗算
console.log("5 * 3 = " + (5 * 3) );
// 4. 除算
console.log("5 / 3 = " + (5 / 3) );
// 5. 剰余(余り)
console.log("10 % 3 = " + (10 % 3) ); // 10割る3の余りは 1
// 6. べき乗
console.log("2 ** 3 = " + (2 ** 3) ); // 2の3乗は 8
}
実行ログの確認
これを実行して「実行ログ」を見ると、以下のように表示されます。
情報1 5 + 3 = 8
情報2 10 - (-4) = 14
情報3 5 * 3 = 15
情報4 5 / 3 = 1.6666666666666667
情報5 10 % 3 = 1
情報6 2 ** 3 = 8
このように、GASで数値型と算術演算子を使えば、基本的な計算はすべて行えることがわかります。 特に、掛け算の * と割り算の / は、これからGASでスプレッドシートの値を計算する際などに頻繁に使うので、覚えておきましょう。
まとめ
お疲れ様でした。今回は、GASプログラミングの最も土台となる「データ型」と「演算」について詳しく学びました。
コンピュータが「数値」や「文字列」、「配列」や「オブジェクト」といった情報の種類をどう区別しているか、その基本が掴めたと思います。
また、+ や * といった計算(算術演算子)、+ による「文字列連結」、\n などの「エスケープシーケンス」、そしてメモ書きである「コメント」の使い方も確認しました。
一つ一つのルールはシンプルですが、これらはGASで自動化を行う上で必須の知識です。次に学んでいただきたいのは、今回学んだデータを保存しておくための、非常に重要な「変数」についてです。









