Google Apps Script (GAS) でこのセル範囲の値を取得・設定する方法を説明します。
Rangeクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のRangeクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
getValue() | 値依存 | このセルの値を取得する |
getValues() | 値依存 | このセル範囲の値を取得する |
getDisplayValue() | String | このセルの表示されている値を取得する |
getDisplayValues() | String | このセル範囲の表示されている値を取得する |
setValue(value) | Range | このセルの値を設定する |
setValues(values) | Range | このセル範囲の値を設定する |
このセル範囲のセルの値を取得する
このセル範囲のセルの値を取得するメソッドを説明します。
このセルの値を取得する:getValue()
このセル範囲のセルの値を取得する方法です。
戻り値は、セルの値に応じてString型、Number型、Date型、Boolean型のいずれかになります。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("C3"); console.log(testRange.getValue()); } |
下記のファイルで実行してみます。
実行結果は下記になります。セルの値が出力されます。文字列のためString型になります。
1 |
C3セル |
複数のセル範囲を対象として実行した場合は、左上のセルの値が表示されます。
このセル範囲の値を取得する:getValues()
このセル範囲のセルの値を配列で取得する方法です。
戻り値は、セルの値に応じてString型、Number型、Date型、Boolean型のいずれかになります。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B3:D5"); console.log(testRange.getValues()); } |
下記のファイルで実行してみます。
実行結果は下記になります。セルの値が出力されます。文字列のためString型になります。
1 2 3 |
[ [ 'B3セル', 'C3セル', 'D3セル' ], [ 'B4セル', 'C4セル', 'D4セル' ], [ 'B5セル', 'C5セル', 'D5セル' ] ] |
このセルの表示されている値を取得する:getDisplayValue()
このセル範囲のセルの表示されている値を取得する方法です。
戻り値は、String型になります。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2"); console.log(testRange.getDisplayValue()); } |
下記のファイルで実行してみます。
実行結果は下記になります。表示されている形式でセルの値が出力されます。
1 |
2023/1/1 |
同じことをGetValueメソッドで実施すると、下記の結果になります。
1 |
Sun Jan 01 2023 14:00:00 GMT+0900 (Japan Standard Time) |
複数のセル範囲を対象として実行した場合は、左上のセルの値が表示されます。
このセル範囲の表示されている値を取得する:getDisplayValues()
このセル範囲のセルの表示されている値を配列で取得する方法です。
戻り値は、String型になります。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C2"); console.log(testRange.getDisplayValues()); } |
下記のファイルで実行してみます。
実行結果は下記になります。表示されている形式でセルの値が出力されます。
1 |
[ [ '2023/1/1', '2023/4/1' ] ] |
同じことをGetValuesメソッドで実施すると、下記の結果になります。
1 2 |
[ [ Sun Jan 01 2023 14:00:00 GMT+0900 (Japan Standard Time), Sat Apr 01 2023 13:00:00 GMT+0900 (Japan Standard Time) ] ] |
このセル範囲のセルの値を設定する
このセル範囲のセルの値を設定するメソッドを説明します。
このセルの値を設定する:setValue(value)
このセル範囲のセルの値を設定する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("C3"); testRange.setValue("C3セル変更後") } |
下記のファイルで実行してみます。
実行結果は下記になります。指定したセルの値が設定されます。
複数のセル範囲を対象として実行した場合、すべてのセルの値を設定できます。
すべてのセルに同じ値を設定するのであればsetValuesではなくsetValueでも良さそうです。
このセル範囲の値を設定する:setValues(values)
このセル範囲のセルの値を配列で指定して設定する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setValues([["B2セル変更後", "C2セル変更後"], ["B3セル変更後", "C3セル変更後"]]); } |
下記のファイルで実行してみます。
実行結果は下記になります。指定したセルの値が設定されます。
まとめ
Google Apps Script (GAS) でこのセル範囲の値を取得・設定する方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。