Google Apps Script入門
変数って何だ?

Google Apps Script(GAS)の入門解説です
公開日:2016-09-27 最終更新日:2022-11-04

第5回.変数って何だ?


プログラミングを始めて、最初に変数で躓く人が多いようです。
変数が使えなければプログラムは書けません。
Google Apps Scriptでの変数について解説します。


スクリプトの書き方については、前回までの記事でしっかり習得しておいてください。
今回からは、結果のスクリプトのみ掲載し、詳細な書き順は掲載しません。

大文字小文字は区別されますので、タイピングする場合は、大文字小文字に注意してください。


変数とは

プログラムにおいて、扱うデータを入れて必要なときに利用するために用意した入れ物です。

その入れ物に付けた名前が変数名になります。

入れ物と表現しましたが、
変数には、文字や数値と言った値だけでなく、オブジェクトも入れられます。
※実際にはオブジェクトそのものが入るわけではありませんが、それを考えるのは、もっと、ずっと後で良いです。


前回書いたスクリプト

function mySample1() {
 SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue("Hello World")
}



A2セルにも文字を入れたい

これは、A1セルに、"Hello World"と入ります。
では、追加で、
A2セルに、"こんにちは"と入れるスクリプトを書き足しましょう。

function mySample1() {
  SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue("Hello World")
  SpreadsheetApp.getActiveSheet().getRange(2, 1).setValue("こんにちは")
}

これで、
A1セルに、"Hello World"
A2セルに、"こんにちは"
と入ります。


もっと短く書けないのか

確かに、これで動きますが・・・長い・・・何でこんなに長いのか・・・
10個のセルに値を入れるとしたら・・・

コピペすれば別に長くても構わない。

確かにそうではありますが・・・
もっと複雑な処理を書こうとしたら・・・

毎行、SpreadsheetAppから書くのかってことで、さすがに何とかならないものか。

SpreadsheetApp.getActiveSheet()

ここまでは同じなのだから、省略できないのか・・・
そう、考えるのは普通の事です。

ここで変数が出てきます。


シートを変数に入れる

SpreadsheetApp.getActiveSheet()

これを変数に入れられれば、

変数.getRange(1, 1).setValue("Hello World")
変数.getRange(2, 1).setValue("こんにちは")


このように書けそうです。
これなら、だいぶ短くなり、読みやすくなります。

SpreadsheetApp.getActiveSheet()
これを変数に入れるには、

var sheet
sheet = SpreadsheetApp.getActiveSheet()

または
var sheet = SpreadsheetApp.getActiveSheet()

このように書きます。

var変数宣言になります。
sheet変数名です。

先のスクリプトでは、変数宣言した後に、変数にオブジェクトを入れています。
後のスクリプトでは、変数宣言と同時に、変数にオブジェクトを入れています。

これ以降は、
sheetと書けば、SpreadsheetApp.getActiveSheet()の事になります。

Google Apps Scriptでは、変数宣言は必須です。
変数に型がありません、何でも入れる事が出来ます。

VBAでは

varはVBAではDimに相当します。
VBAでは、オブジェクトの場合は、
Setステートメントを使いますが、Google Apps Scriptでは不要です。


変数を使って書き直すと

function mySample1() {
  var sheet = SpreadsheetApp.getActiveSheet()
  sheet.getRange(1, 1).setValue("Hello World")
  sheet.getRange(2, 1).setValue("こんにちは")
}

変数の宣言方法と使い方

上のスクリプトは、

function mySample1() {
  var app,sheet,range
  app = SpreadsheetApp
  sheet = app.getActiveSheet()
  range = sheet.getRange(1, 1)
  range.setValue("Hello World")
  range = sheet.getRange(2, 1)
  range.setValue("こんにちは")
}

このようにも書けます。

varでの変数宣言は、
var 変数1,変数2,変数3
このように、カンマで区切って、複数の変数を宣言できます。

何を変数に入れるかは自由です。
変数の使い方で、プログラムが全く違った書き方になります。


数値や文字を変数に入れる

ここまでは、オブジェクトを変数に入れる事に特化して書きましたが、
数値や文字を入れる場合も、全く同じです。

function test() {
  var i = 1
  i=i+1
Browser.msgBox(i)
}

これで、「2」と表示されます。


変数って何だ?の最後に

プログラミングの要点の一つが変数の使い方です。

変数の使い方にこれと言った決まりはありません。

そして、変数の使い方でプログラミングが大きく変わってきます。
どのような使い方をすれば良いかは、徐々に習得していきましょう。




同じテーマ「Google Apps Script入門」の記事

第2回.とにかく書いてみよう(スクリプト エディタ)

・スプレッドシートの用意 ・スクリプト エディタの起動 ・プロジェクト名の変更 ・プロジェクトの新規作成・削除 ・スクリプト ファイル ・スクリプトを書く ・スクリプトの保存 ・とにかく書いてみよう(スクリプト エディタ)の最後に
第3回.スクリプトを実行するには
・前回書いたスクリプト ・スクリプト エディタから実行 ・スプレッドシートのボタンにスクリプトを登録 ・スクリプトが間違っているとき ・スクリプトを実行するにはの最後に
第4回.セルに数字や文字を入れる
・新しいfunctionを追加 ・インデントについて ・書く練習 ・実行して確認 ・コードの解説 ・オブジェクトについて ・メソッドについて ・ステートメントの末尾について ・スクリプトを読めるようになりましょう
第5回.変数って何だ?
第6回.セルの値を使って計算する
・セルの値の取得と設定 ・完成スクリプト、その1 ・解説、その1 ・完成スクリプト、その2 ・解説、その2 ・算術演算子(四則演算子) ・セルの値を使って計算するの最後に
第7回.同じ計算を行数分繰り返す
・同じ計算を行数分繰り返すとは ・前回のスクリプト ・完成スクリプト ・スクリプトの解説 ・forの詳細 ・ブロック文 ・同じ計算を行数分繰り返すの最後に
第8回.最終行を取得して繰り返す
・前回の復習 ・完成スクリプト ・スクリプトの解説 ・指定列の最終行 ・最終行を取得して繰り返すの最後に
第9回.コメントの書き方
・コメントアウトの書き方 ・コメントの必要性 ・コメントの書き方
第10回.条件で処理を変える(条件分岐,if)
・条件分岐(if)の例題 ・完成コード ・if...else文の説明 ・比較演算子 ・論理演算子 ・ビット演算子 ・条件分岐(if)の最後に
第11回.条件で処理を変える(条件分岐,switch)
・条件分岐(switch)の例題 ・完成コード ・switch文の説明 ・条件分岐(switch)の最後に
第12回.表範囲をまとめて消去する
・セルの値の消去 ・データ部分だけを消去する例題 ・完成スクリプト ・スクリプトの解説 ・VBAのCurrentRegionについて ・表範囲をまとめて消去の最後に


新着記事NEW ・・・新着記事一覧を見る

ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ