【初心者向けのGAS】スプレッドシートの範囲指定したセルから値を取得する方法
- 2019.06.26
- 2019.09.08
- Google Apps Script
よこのじ(@yokonoji_work)です。
Google Apps Script(GAS)で「シート内のセルを取得する方法」と「セルの値を取得する方法」をご紹介します。
「【初心者向けのGAS】スプレッドシートの最後の行(最終行)を取得する方法」「【初心者向けのGAS】スプレッドシートの最後の列(最終列)を取得する方法」もご参考にどうぞ。
スプレッドシートの値を取得できれば「【初心者向けのGAS】Google Apps Scriptでメールを送信する方法【メルマガ機能に応用可】」を利用して簡易的なメルマガシステムを作ることが可能になりますよ。
シート内のセルを取得する方法
セルの範囲を取得する方法には、「アドレスで指定する方法」と「行番号で指定する方法」があります。
セルを取得するには、取得元のスプレッドシートとシートを取得しておく必要があります。
// スプレッドシートを取得する var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // シートを取得する var sheet = spreadsheet.getSheetByName("シート1");
アドレスで指定する方法
1つのセルを取得する場合は、次のようにgetRange()メソッドを使用して記述します。
var cell = sheet.getRange("A1");
複数のセルを取得する場合は、次のように記述します。
var range = sheet.getRange("A1:D2");
単一のセルを取得は、列がA、行が1という形で指定します。複数セルの場合は、指定した始点と終点を範囲としてセルを取得します。
getRange(“A1:D2”)であれば、青い部分が取得範囲となります。
行番号で指定する方法
1つのセルを取得する場合は、次のように記述します。
var cell = sheet.getRange(1, 1);
複数のセルを取得する場合は、次のように記述します。
var range = sheet.getRange(1, 1, 2, 3);
単一のセルを行番号で指定する場合は、getRange(行, 列) のように指定します。(1, 1)であればA1、(2, 3)であればC2に相当します。
複数セルを取得するのも同様です。getRange(1, 1, 2, 3)のように始点と終点を指定してあげます。この場合は、(1, 1)=A1から(2, 3)=C2の範囲となります。
数値でセルを指定できますので、for文などでセルを扱う場合には使い勝手が良いです。
セルの値を取得する方法
「1つのセルを取得する方法」と「複数のセルを取得する方法」をご紹介しましたので、これらのセルに記載されている値を取得する方法も確認してみましょう。
1つのセルの値を取得する場合は、getValue() メソッドを使用します。
var value = cell.getValue();
範囲内の複数のセルの各値を取得する場合は、getValues() メソッドを使用します。
var values = range.getValues();
セルの値取得の使用例
A1からC2の範囲のセルの値を取得してみます。
セルの値取得のサンプルプログラムは次のとおりです。
function myFunction() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName("シート1"); var range = sheet.getRange(1, 1, 2, 3); var values = range.getValues(); Logger.log(values); }
これを実行して Ctrl + Enter を押すと、values変数に格納された値を確認できます。
確認すると、[[a, b, c], [d, e, f]] のように値が取得できているのが分かります。セルから取得した値は配列で保存されていますので、次のように特定のセルの値を取り出すことが可能です。
var value = values[0][1]; // B1セルの値を取り出し
セルに値を書き込む方法は「【初心者向けのGAS】スプレッドシートの指定したセルに値を書き込む方法」を参照ください。
値の取得だけではなく「【初心者向けのGAS】スプレッドシート内のテキスト検索と置換をする方法」で、検索と置換の方法もご確認ください。
業務にGoogle Apps Scriptを取り入れれば、数百時間/年の改善が行える可能性あり!
- 前の記事
【初心者向けのGAS】スプレッドシート内のシートを指定する方法 2019.06.25
- 次の記事
【初心者向けのGAS】スプレッドシートの指定したセルに値を書き込む方法 2019.06.27