JavaScript クラス #4

株式会社リュディアです。JavaScript クラス #3 で Google Spreadsheet 向け汎用クラスの定義を行いました。引き続きまとめていきます。掲載するソースコードはすべて GAS の開発環境で動作確認をしています。JavaScript クラス #3 でも記載していますがスタンドアロン型の GAS スクリプト環境が必要です。

JavaScript クラス #3 で使ったコードを再度以下に示します。

class SheetManager {
 constructor( ss, sheetName ) {
   this._sheet = ss.getSheetByName( sheetName );
   
   this._startRow = 1;
   this._lastRow = this._sheet.getLastRow();
   this._numOfRows = this._lastRow - this._startRow + 1;
   
   this._startColumn = 1;
   this._lastColumn = this._sheet.getLastColumn();
   this._numOfColumns = this._lastColumn - this._startColumn + 1;
   
   this._range = this._sheet.getRange( this._startRow, this._startColumn, this._numOfRows, this._numOfColumns );
   this._data = this._range.getValues();
 }
 getStartRow()                  { return this._startRow; }
 getLastRow()                   { return this._lastRow; }
 getNumOfRows()                 { return this._numOfRows; }
 getStartColumn()               { return this._startColumn; }
 getLastColumn()                { return this._lastColumn; }
 getNumOfColumns()              { return this._numOfColumns; }
 getData()                      { return this._data; }
 
 getValue( row, column )        { return this.getData()[ row ][ column ]; }
 setValue( row, column, value ) { this.getData()[ row ][ column ] = value; }

 updateSpreadsheet() {
   this._range.setValues( this.getData() );
 }
}

メンバ関数を見ていきます。getStartRow( ) を見てください。これは constructor で定義した変数 _startRow を返すメンバ関数です。この関数を呼び出すと this._startRow が帰ります。以下、getData( ) までは同様に constructor で定義した変数を返すメンバ関数を定義しています。どれも構造がシンプルなのですぐにわかると思います。

次に getValue( ) です。これは引数として行番号、列番号を指定すると 変数 data の該当する箇所の値を返すメンバ関数です。また setValue( ) は引数として行番号、列番号、書き込み値、を指定すると変数 data の該当する箇所に書き込み値を反映するメンバ関数です。

GAS で Spreadsheet を操作する #3  で説明したように、Spreadsheet では行、列とも 1 から始まる整数で数えますが、data に 2次元配列として設定したデータは配列なので行、列とも 0 から始まる整数で数えます。メンバ関数 getValue( row, column )、setValue( row, column, value ) の row, column はいずれも2次元配列を対象としているので 0 から始まる整数を設定する必要があることにも注意です。

最後に updateSpreadsheet( ) です。GAS で Spreadsheet を操作する #4 で説明したように変数 data に対する書き込みを行っても Spreadsheet には値が反映されません。変数 data に行った処理を Spreadsheet に反映する処理が updateSpreadsheet ( ) です。いくつかの処理を行い、プログラムの最後に Spreadsheet に値を書き戻す際に使う関数になります。

今回はメンバ関数のまとめを行いました。JavaScript クラス #3 とあわせて Spreadsheet を操作するための汎用クラスの内容説明が終わりました。次回は定義したクラスを実際に使ってみます。

では、ごきげんよう。


いいなと思ったら応援しよう!