Google Apps Script入門
配列って何なんだ?

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

第21回.配列って何なんだ?


プログラミングを学ぶ上で、乗り越えなければならない壁がいくつかありますが、
その一つが、配列になると思います、


その全てを自在に使いこなすには相当の時間が必要ですが、まずは基礎から。
配列配列変数とも言い、変数の一種になります。

変数についの説明では、
データを入れて必要なときに利用するために用意した入れ物で、その入れ物に付けた名前が変数名になります。
このように説明しましたが、
今まで扱ってきた変数には、1つの数値や文字列といったデータを入れて使うというものでした。

これに対して、配列は、
変数に背番号のような番号(インデックス)を付けて、複数のデータを扱えるようにしたものになります。
これにより、一つの変数名で、複数の値を入れる事が出来るようになります。
番号(インデックス)を指定することで、配列内の指定の位置のデータを取得・変更することが出来ます。

では、具体的に、Google Apps Scriptを書いてみましょう。
あまり、理屈にこだわらず、まずは使い方を覚えましょう。


配列を作成する

function myFunction21_1() {
  var ary = ["google", "apps", "script"];
  Browser.msgBox(ary);
  Browser.msgBox(ary[1]);
}

google,apps,script
と表示されます。

var ary = ["google", "apps", "script"];
これで、aryという配列変数を定義し、3つの文字列を入れています。

初期値を入れずに、配列のみを作成するなら、
var ary = [];
このように書きます。


インデックスを指定して操作する

function myFunction21_2() {
  var ary = ["google", "apps", "script"];
  Browser.msgBox(ary[1]);
  var i = ary.indexOf("apps");
  ary[i] = "Apps";
  Browser.msgBox(ary);
}

apps
1
goole,Apps,script
と表示されます。

配列のインデックスは、0から始まります。

ary[1]
インデックスが1なので、2番目の要素になります。

indexOf
引数の文字が入っているインデックスを返します。
指定の文字列が配列に無い場合は、-1が返されます。


配列に追加する

function myFunction21_3() {
  var ary = [];
  ary.push("apps")
  ary.push("script")
  ary.unshift("google")
  Browser.msgBox(ary);
}

google,apps,script
と表示されます。

push
配列の末尾(最後)に追加します。

unshift
配列の先頭(最初)に追加します。


配列から削除する

function myFunction21_4() {
  var ary = ["google", "apps", "script"];
  ary.pop();
  ary.shift();
  Browser.msgBox(ary);
}

pop
配列の末尾(最後)の要素を削除します。

shift
配列の先頭(最初)の要素を削除します。


PPAP

function PPAP() {
  var AP = [];
  var PP = [];
  var PPAP = [];
  AP.push("Pen");
  AP.unshift("Apple");
  Browser.msgBox(AP);
  PP.push("Pen");
  PP.unshift("Pineapple");
  Browser.msgBox(PP);
  for (var i=PP.length-1;i>=0;i--) {
    PPAP.push(PP[i]);
  }
  for (var i=0;i<PP.length;i++) {
    PPAP.push(AP[i]);
  }
  Browser.msgBox(PPAP);
}

踊りながら、解読してみましょう。


配列の繰り返し処理

function myFunction21_5() {
  var ary = ["google", "apps", "script"];
  for (i=0; i<=ary.length-1; i++) {
    Logger.log(ary[i]);
  }
}

forでiを1ずつ進めながら全ての要素をログに出力しています。
これは、foreachで書くこともできます。

function myFunction21_6() {
  var ary = ["google", "apps", "script"];
  ary.forEach(get_ary);
}
function get_ary(arg){
  Logger.log(arg);
}

これは一つにまとめて書くことができます。

function myFunction21_7() {
  var ary = ["google", "apps", "script"];
  ary.forEach(function(arg){
    Logger.log(arg);
  });
}

Logger.logについて

Logger.logはログを表示します。
出力されたログを見るには、
gas 配列 logger.log

%sというログ表示する書式を指定するプレースホルダーも用意されています。
Logger.log(format, [values, …]);
例、
Logger.log("配列の中身は%sです", arg);


多次元配列について

上記までの配列は、1次元配列になります。
変数としての箱が、一列に並んでいるものと考えれば良いです。

多次元配列とは、2次元以上の配列になります。
2次元配列であれば、シートのように、縦横に箱が並んでいる事を想像してもらえれば結構です。

JavaScriptでは、多次元配列は直接的にはサポートされていません。

ですが、実際には多次元配列を作ることが出来ます。
配列には、数値や文字列だけではなく、オブジェクトや配列も格納することができます

そこで、配列の要素に配列を指定することで2次元配列を作成できます。
3次元以上の配列も同様の考え方で作ることが出来ます。
これについては、使う必要が出てきた時点で、実践的な使い方を解説していきます。


配列の最後に

スプレッドシートのセルに直接データを出し入れすると、とても処理時間が遅くなってしまいます。

処理速度向上には、配列の使用が必須になってきますので、ぜひ習得しておきましょう。
第35回.スプレッドシートが非常に遅い、高速化するには
GoogleAppsScriptで、スプレッドシートのセルを扱うと、とても処理時間がかかります、あまりにも遅く、目で動作がゆっくり見えるレベルです、データ量が多くなっても、実用に耐える速度で処理する方法を解説します。スプレッドシートに比べればExcelはかなり速いですが、VBAの書き方によっては処理時間がかかってし…




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

第18回.組み込み関数を使う
第19回.いろいろな繰り返し処理
第20回.エラー処理(try・・・catch)
第21回.配列って何なんだ?
第22回.オブジェクト、メソッド、プロパティとは
第23回.行・列を操作する(挿入・削除・非表示・サイズ)
第24回.シートの挿入・削除・名前変更
第25回.スプレッドシート(ブック)の作成・名前変更
第26回.セルのコピー&各種ペースト
第27回.セルに数式を入れる
第28回.リンクの挿入・編集・削除


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

カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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