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 を操作するための汎用クラスの内容説明が終わりました。次回は定義したクラスを実際に使ってみます。
では、ごきげんよう。