JavaScript クラス #5
株式会社リュディアです。JavaScript クラス #3、JavaScript クラス #4 で Google Spreadsheet 向け汎用クラスの定義を行いました。今日は定義したクラスを実際に使ってみます。掲載するソースコードはすべて GAS の開発環境で動作確認をしています。JavaScript クラス #3 でも記載したようにスタンドアロン型の GAS スクリプト環境が必要です。
以下のコードをみてください。定義したクラスを実際に利用する関数です。
function myFuncion() {
const ss = SpreadsheetApp.openById( '1g7hXXXXXXXXXXXXXXAzLGoncmqHgA7vGWqHb2EM' );
const sheetManager = new SheetManager(ss, 'シート1' );
console.log( sheetManager.getStartRow() ) ;
console.log( sheetManager.getLastRow() ) ;
console.log( sheetManager.getNumOfRows() ) ;
console.log( sheetManager.getStartColumn() ) ;
console.log( sheetManager.getLastColumn() ) ;
console.log( sheetManager.getNumOfColumns() ) ;
console.log( sheetManager.getValue( 6, 1 ) ) ;
console.log( sheetManager.getValue( 8, 3 ) ) ;
sheetManager.setValue( 6, 1, '変更' ) ;
sheetManager.setValue( 8, 3, '他府県' ) ;
console.log( sheetManager.getValue( 6, 1 ) ) ;
console.log( sheetManager.getValue( 8, 3 ) ) ;
sheetManager.updateSpreadsheet() ;
}
// 実行結果
// 1
// 11
// 11
// 1
// 5
// 5
// 一子
// 高知
// 変更
// 他府県
対象とする Spreadsheet を指定する値を ss に設定し、定義した SheetManager クラスをインスタンスするときの引数として ss とシート名 "シート1" を指定します。これで対象とする Spreadsheet に対応するインスタンス sheetManager ができました。クラス定義におけるクラス名は SheetManager のように冒頭の S を大文字の S としていますが、インスタンス名 sheetManager は冒頭の s を小文字にしています。特に規則はないのですが、私の癖だと理解いただいて読み進める際に間違えないようにしてください。
その後メンバ関数を使い変数の値を表示しています。さらに Spreadsheet の値を 2 箇所読みだしています。そして読みだした箇所と同じ箇所を setValue( ) で書き換え、書き換えられていることを確認するために再度、同じ箇所を読みだして表示しています。
ここまでの状態は二次元配列で表現された変数を書き換えているだけなので、最後に updateSpreadsheet( ) 関数で Spreadsheet に書き戻しています。Spreadsheet を見てみてください。setValue ( ) 変更した内容が反映されていることが確認できましたか?
3回に渡って Spreadsheet を汎用的に扱うためのクラスの例をまとめてみました。非常に簡単な例ですが、もし複数のシートを扱い、何らかの処理をする場合、このようなクラスを準備しておけば便利であることが理解いただけたかと思います。皆さまの便利なように自由に拡張、改変を行ってください。
では、ごきげんよう。