【Google Apps Script】String型とは?Excelを例にデータ型を解説【素人OK】
スポンサーリンク

Google Apps Scriptを勉強し始めたけどデータ型って何?String型?

調べたけど専門的で分からん!素人にも分かるように説明してくれ!

ピロリ
安心して下さい!身近なExcelを例に説明しますよ

Google Apps Script、略してGASはプログラミングに馴染みがない人でも始めやすいかつ、身につけば非常に有用なプログラミング言語。
しかし、素人が始めやすい分、最初に躓きやすいのが一般的に馴染みがないデータ型だと思います。
ぼくもGASの勉強を始めた当初データ型のことをいまいち理解しておらず、いざ構文を書こう!って思った時「どう書いたら何型でこれは何を表しているんだ?」ってなりました。

GASはネットで調べた情報の組み合わせで、何となく構文ができてしまいます。
そこが良いところでもあるのですが、調べても分からない所が出てきたら思考停止。
やはりそこは構文を書く上での基本ルールを知る必要があります。

今回はプログラミング素人がGASを始める上で、必ず知っておきたい基本ルール「データ型」について、おなじみのExcelを例にして説明したいと思います。
プログラミング素人だけどGASを勉強してみたいという人は、ぜひこの記事を読んで基本ルールを理解しましょう。

Google Apps Scriptとは?

Google Apps Script(以下GAS)はGoogle社が提供するプログラミング言語です。インターネット環境があればなん無料でGASを使えちゃいます。

GASを使用することで同じくGoogle社が提供しているGmail、Googleスプレッドシート、ドキュメント、スライド、Googleドライブ、カレンダー等のGoogleAppsをプログラミングにより操作、連携をすることが可能。

GASで実現できること

  • スプレッドシートに記載のメールアドレスにメールを自動送信
  • スプレッドシート上で使えるオリジナルの関数の作成
  • 日々更新されるスプレッドシートのバックアップをドライブに自動保存
  • フォームに回答してくれた人にお礼のメールを自動送信

実は、これらは全てプログラミング素人のぼくの自作システム。素人でも簡単でかつ仕事効率化に直結するシステムが作れちゃうのがGASの素晴らしい所。

また、GASはJavaScriptというプログラミング言語が元になっています。
JavaScriptが元になっているというとなんだか凄く難しそうに聞こえますが、JavaScriptの知識なんてなくてもプログラミングできちゃうのがGAS。
逆に、より身近なGASを学んでいくことで世界で一番使用されているJavaScriptを学ぶことができちゃうと考えましょう!

データ型とは?

素人がプログラミングを始める上で最も理解しておくべき基礎の一つがデータ型です。
これを理解していなければ組んだシステムがうまく作動しないことも。実際、先程のシステムを作った際にもデータ型が適切でなく、うまく作動しなかったということがありました。

データ型とは、一言でいうと「データの種類」それが何を表しているかということ。分かりやすいように身近なExcelで例えると「表示形式」のことです。

Excelセルの書式設定

セルの表示形式が「数値」であればを表し「文字列」であれば文字を表しますよね?
例えば、表示形式が「文字列」となっている値のSUM(合計)ってできません。
これと同じことがGASをはじめとするプログラミング言語にも起こるのです。

ちなみにExcelの場合は表示形式で値の種類を変更しますが、GASの場合は表記の仕方でデータ型を指定
その表記の仕方のことを「リテラル」と言います。

それでは、主なデータ型についてそれぞれその意味と指定の仕方を説明していきます。

① Number型(数値型)

Number型はその名の通り数値を表すデータ型のことで、正負の整数、小数、16進数を取り扱うことが可能。
Number型にすることで加算(+)・減算(-)・乗算(/)・除算(*)・剰余(%)などの数値演算を行うことができます。
リテラル(表記方法)はそのまま数値のみを記載るという至って簡単なものです。

function myFunction(){
  var num1 = 1; //Number型の 1(整数の1)
  var num2 = 1.01; //Number型の 1.01(小数の1.01)
  Logger.log(num1); //1 がログ出力されます。
  Logger.log(num2); //1.01 がログ出力されます。
}

② String型(文字列型)

String型は文字を表すデータ型。
String型はプラス(+)を使うことで文字列同士を連結可能です。
リテラルは、String型で表記したいものをシングルクォーテーション(')もしくはダブルクォーテーション(")で囲って記載します。

function myFunction(){
  var str1 = "こんにちは"; //String型の こんにちは
  var str2 = '10'; //String型の 10(文字の10)
  Logger.log(str1); //こんにちは が出力されます。
  Logger.log(str2); //10 が出力されます。
}

String型、Number型はいずれもプラス(+)が使用できますが、String型、Number型を跨いでのプラス(+)使用は不可です。数字と文字は足せませんからね。

ちなみに、String型の10String型の20を足すと「1020」Number型の10Number型の20を足すと「30」になります。

function myFunction(){
  var str1 = "10"; //String型の 10(文字の10)
  var str2 = "20"; //String型の 20(文字の20)
  var num1 = 10; //Number型の 10(整数の10)
  var num2 = 20; //Number型の 20(整数の20)
  Logger.log(str1+str2); //1020 が出力されます。(10と20が文字として結合)
  Logger.log(num1+num2); //30 が出力されます。(10と20が数値として合計)
}

③ Boolean型(真偽型)

Boolean型は「YesまたはNo」「正しいまたは正しくない」を「true」「false」の二択の値で表すデータ型。
これまでのNumber型、String型と異なり、「true」「false」の2種類の値しか持ちません。

GASを含めてプログラミングは条件分岐によって処理を分けることが多いです。
特定の条件によって処理を変えたい時に、その条件の判断材料としてBoolean型の「true」「false」が活躍します。

このあたりもExcelでいうif関数に似ていますね。

function myFunction(){
  var bool1 = 10>0; //Boolean型の true (10>0は正しい)
  var bool2 = 10<0; //Boolean型の fasle (10<0は誤り)
  Logger.log(bool1); //true が出力されます。
  Logger.log(bool2); //false が出力されます。
}

④ Array型(配列型)

Array型は同種のデータを複数取り扱う際に、複数のデータをまとめて1つの集合として表すデータ型。
リテラルは、Array型で表記したい複数のデータをカンマ(,)で区切り、全体を角括弧([ ])で囲って記載します。

function myFunction(){
  var nums = [25, 40, 35, 10] //Array型の配列 25,40,35,10
  Logger.log(nums); //[25, 40, 35, 10] が出力されます。
  Logger.log(nums[2]); //35 が出力されます。(numsの2番目の35)
}
Array型では配列内の各要素は「0」から順番に「0番目、1番目、2番目...」とインデックスされています。

ピロリ
こちらの図⇓を参考にすると理解しやすいよ

⑤ Array型(配列型)-二次元配列

配列型を更に応用したものがGASのプログラミングで欠かせない二次元配列。
リテラルは、それぞれの配列を角括弧([ ])で囲いつつ、カンマ(,)で区切り、更に全体を角括弧([ ])で囲って記載します。

function myFunction(){
  var nums =[ [25, 40, 35, 10], //インデックス0の配列 25,40,35,10
              [5, 50, 8], //インデックス1の配列 5,50,8
              [10] ]; //インデックス2の配列 10
  Logger.log(nums); //[25, 40, 35, 10], [5, 50, 8], [10] が出力されます。
  Logger.log(nums[0]); //[25, 40, 35, 10] が出力されます。(インデックス0の配列)
  Logger.log(nums[1][2]); //8 が出力されます。(インデックス1の配列の中のインデックス2の要素)
}

ピロリ
二次元配列もこちらの図⇓を見ると理解しやすいです

Excelやスプレッドシートで例えると行列に値の入った表と似ています。
先程の二次元配列をExcelやスプレッドシートの表で表すとこちら⇓の様になります。

スプレッドシート内のセルの値を条件にGASによる操作を行うことが多いので、Array型の二次元配列は非常に重要です。
スプレッドシートのセルのインデックスは1始まり、Array型の配列のインデックスは0始まりと、1つずれているので注意しましょう。

⑥ Object型(オブジェクト型)

Object型はArray型と同様に複数のデータをまとめて1つの集合として表すデータ型。
Array型との違いはインデックスの名前(プロパティ)を任意の文字列に指定することができる点です(Array型のインデックス番号は0,1,2...)。
リテラルは、プロパティと値をコロン(:)でつないだ組み合わせをカンマ(,)で区切り、更に全体を波括弧({})で囲って記載します。

function myFunction(){
  var person = {name:'pirori', age:'31', job:'office worker'};
  Logger.log(person.name); //pirori が出力されます。(personのnameプロパティの値)
  Logger.log(person['name']); //pirori が出力されます。(上と異なる出力方法)
  Logger.log(person.age); //31 が出力されます。(personのageプロパティの値)
}

ピロリ
Object型もArray型と同じようにこんなイメージ⇓です

【その他】null,undefined

null、undefinedは一言で言うとエラーみたいなものです。いずれも「ない」という状態を表しています。

厳密には、

  • null  値がない状態
  • undefined  値が未定義の状態

を表しています。

ログ出力したときにnullやundefinedが出力されたら、「何か間違っているんだな」と思ってくれればOKです。

まとめ:【Google Apps Script】String型とは?Excelを例にデータ型を解説

この記事のポイント

  • データ型とはその値の種類のこと
  • Array型の二次元配列はよく使われる
  • Array型はインデックス番号に要注意

GASはGoogleアカウントがあれば無料で始めることができ、ネットにも参考となるコードがたくさん落ちているので、プログラミング素人でも簡単にシステムを構築することができます。
ぼくもExcelのマクロさえわからない状態でGASでシステムを構築しました。そんな状態でもできちゃうのがGAS。笑

今後、プログラマーでない人種もプログラミングの知識が求められる未来が確実に来ます。
でも正直、勉強したいけどどうやったらいいか分からないという人が大半だと思います。

まずはGASを手始めに実際にシステムを構築しながらプログラミングを学習し、同時に今回紹介した「データ型」のようなプログラミングの基礎も学ぶことがベストというのがぼくの見解です。

みなさんも是非Googleアカウントを取得してGASを始めてみて下さい。

ピロリ
今後、GASを使って素人プログラマー(笑)が作成したシステムとそのコードを紹介していくのでご期待下さい!
スポンサーリンク
おすすめの記事