episode3 GASの「範囲を指定してまとめて入力(二次元配列は団地だ!)」(Hunter×Hunterで覚えるGoogle Apps Script)

この記事を読むと、アニメHUNTER×HUNTER(ハンターハンター)を通してGAS(Google Apps Script)で、二次元配列をスプレッドシート出力することが可能です。
この記事で取り扱うのは、4行2列の配列です。
シートに出力する関数、消去する関数の2つを作って、それぞれボタンに割り当て(登録)します。
また、シートに入力されている範囲をgetDataRangeで配列として扱へます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

前回(episode2)の復習をします。

・セルA1に「ハンターハンター」と入力する関数と消去する関数を作り、それぞれをボタンに登録する。

//アクティブなスプレッドシートを選択するグローバル(共通の処理)
const ss=SpreadsheetApp.getActiveSheet();

//入力とログ出力をする関数
function mySet(){

  //セル入力
  let hh=ss.getRange(1,1).setValue('ハンターハンター');

  //ログ出力
  console.log(hh);

}

//消去する関数
function myClear(){
  ss.getRange(1,1).clear();

}

ここから、いよいよキャラクターの名前を登録していきます。

登録するデータは、

「「ゴン」、「強化系」」、
「キルア」、「変化系」」、
「クラピカ」、「具現化系」、
「レオリオ」、「放出系」」

です。

スプレッドシートは行列の二次元配列なので二次元配列を使って入力します。
二次元配列とか配列って難しそうですが、イメージは「団地(マンションでも)」です。

1階・・・ゴンのデータ(101号室に「ゴンの名前」 102号室に「ゴンの念系統」)
2階・・・キルアのデータ(201号室に「キルアの名前」 202号室に「キルアの念系統」)

というふうに「団地」と捉えると、操作しやすくなるのかも知れません。

以上を踏まえてスクリプトを書いていきます。
まずは、キャラクターの名前と念の系統を入力する関数であるmySetから解説します。

キャラクター名と念系統の二次元配列をこのように作成します。

//二次元配列hhにキャラクターの名前と念系統を格納
  let hh=[
    ['ゴン','強化系'],
    ['キルア','変化系'],
    ['クラピカ','具現化系'],
    ['レオリオ','放出系'],
    ];

次に、上記の二次元配列は4行2列なので、スプレッドシートのA1を起点に4行2列分のデータを確保するプログラムを書いていきます。

  //hhを格納するために、スプレッドシートの4行2列を確保して出力する
  ss.getRange(1,1,hh.length,hh[0].length).setValues(hh);

lengthで4行、length[0]で2列分のセル範囲を確保しています。

ログ出力で配列hhが二次元配列として格納されたことが確認できました。

次に、データを消去に関するmyClear関数を作成します。

//入力範囲を消去する関数
function myClear(){

  hh=ss.getDataRange();
  hh.clear();

}

シートオブジェクト.getDataRange()

この書式でシート上のデータを配列として取得できました。
その下のclearメソッドで入力範囲を削除できます。

ここまでのコード全体を記述します。

//アクティブなスプレッドシートを選択するグローバル(共通の処理)
const ss=SpreadsheetApp.getActiveSheet();

//キャラクターの名前と念の系統を入力する関数
function mySet(){

  //二次元配列hhにキャラクターの名前と念系統を格納
  let hh=[
    ['ゴン','強化系'],
    ['キルア','変化系'],
    ['クラピカ','具現化系'],
    ['レオリオ','放出系'],
    ];

  //二次元配列hhにデータが格納されたことをログ出力で確認
  console.log(hh);

  //hhを格納するために、スプレッドシートの4行2列を確保して出力する
  ss.getRange(1,1,hh.length,hh[0].length).setValues(hh);

}

//入力範囲を消去する関数
function myClear(){

  hh=ss.getDataRange();
  hh.clear();

}

下記のシートのボタンにそれぞれのスクリプトを割り当てて実行します。
ボタンを選択すると、右上の「・・・」からスプリクトを割り当てられます。

これで、「入力」「消去」ボタンも機能出来ました。

ご精読ありがとうございました。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

←episode2               episode4→

←GAS自作サンプルへ戻る