便利なGASレシピ集!に戻る場合は以下から
Contents
はじめに
どうも、ビジボットです。
今回GASの記事は「getRange()」を使って、スプレッドシートに入力されているセルの値を取得する方法を紹介しています。 サンプル用のスプレッドシートを用意して「getValue()」と「getValues()」を使ってどのように値を取得するか、実際の動きを含めて見ていきます。また、「getValues()」は2次元配列のため、2次元配列の値を取得する方法も書いてます。
それではさっそく始めていきます!
セルの値を取得する
スプレッドシートに入力されているセルの値を取得するため、以下サンプル用のスプレッドシートを用意しました。

この中で、「ビジボットイチロウ」と記載されているセルの値を取得したいと思います。GASのエディタを開く方法などは以下ページを参照してください。
セルの値を取得するレシピ
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function myFunction() { // 現在開いているスプレッドシートを取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在開いているシートを取得 var sheet = spreadsheet.getActiveSheet(); // 指定したセルの値を取得 var getVal = sheet.getRange(2,2).getValue(); // 取得した結果をログに表示 Logger.log('getRange(2,2):' + getVal); } |
Logger.logの結果
1 |
[19-05-20 02:06:04:063 JST] getRange(2,2):ビジボットイチロウ |
現在開いているシートまでを変数で指定できたら、セルの値を入れる変数を作成します。今回の場合 『getVal』 を作成し、そこにセルに記載されている取得した値を入れていきます。
getRange()を使う
1 |
sheet.getRange(2,2) |
1 |
sheet.getRange(2行目,2列目) |
Rangeとは、セルの番地を示すものと思っていただければOKです。
getRange()の中に指定するコードですが、他にも記述方法があります。
1 2 3 4 5 6 |
var getVal = sheet.getRange(2,2).getValue(); var getCell = sheet.getRange('B2').getValue(); // 取得した結果をログに表示 Logger.log('getRange(2,2):' + getVal); Logger.log('getCell("B2"):' + getCell); |
Logger.logの結果
1 2 |
[19-05-20 02:00:55:228 JST] getRange(2,2):ビジボットイチロウ [19-05-20 02:00:55:229 JST] getCell("B2"):ビジボットイチロウ |
記述の仕方は違いますが、両方とも同じセルの値を取得することができてます。
getValue()を使う
1 |
sheet.getRange(2,2).getValue(); |
1 |
sheet.getRange(2行目,2列目).getValue(); |
getRange()の中に含まれているセルの値を取得します。
よく、getRange()まで取得して、getValue()を忘れるケースがあります。
1 2 |
var getVal = sheet.getRange(2,2); //.getValue(); Logger.log('getRange(2,2):' + getVal); |
上記getValue()がない場合はエラーにならず処理が終了するので、Logger.logで見てみる。
Logger.logの結果
1 |
[19-05-20 02:10:16:731 JST] getRange(2,2):Range |
結果は「Range」が返ってくるが、値は返ってこない。
エラーが無いように必ずLogger.log()を使いながら結果もチェックしましょう。
複数セルの値を取得レシピ
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function myFunction() { // 現在開いているスプレッドシートを取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在開いているシートを取得 var sheet = spreadsheet.getActiveSheet(); // 指定したセルの値を取得 var getVal = sheet.getRange(1,1,5,5).getValues(); // 取得した結果をログに表示 Logger.log('getRange(1,1,5,5):' + getVal); } |
Logger.logの結果
1 |
[19-05-20 02:59:09:695 JST] getRange(1,1,5,5):ID,名前,性別,年齢,,a1000,ビジボットイチロウ,男性,30,,a1001,ビジボットジロウ,男性,20,,a1002,ビジボットサブロウ,男性,20,,a1003,ビジボットシロウ,男性,10, |
getValue()ではなく、複数範囲を取得する場合、getValues()を使います。
その結果、値は2次元配列で取得できます。
getValues()を使う
1 |
sheet.getRange(1,1,5,5).getValues(); |
1 |
sheet.getRange(1行目,1列目,5行目,5列目).getValues(); |
getRange()の中は、指定する領域が増えてます、1,1は(1行目,1列目)のA1セルに該当する部分です、5,5は(5行目,5列目)のD5セルに該当する部分です。
getValues()で遊ぶ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function myFunction() { // 現在開いているスプレッドシートを取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在開いているシートを取得 var sheet = spreadsheet.getActiveSheet(); // 指定したセルの値を取得 var getVal = sheet.getRange(1,1,5,5).getValues(); // 取得した結果をログに表示 Logger.log('getRange(1,1,5,5):' + getVal); // 配列要素数を取得 Logger.log('length:' + getVal.length); Logger.log('getVal[0].length:' + getVal[0].length); //要素毎の値を取得 Logger.log('getVal[0]:' + getVal[0]); Logger.log('getVal[1]:' + getVal[1]); Logger.log('getVal[2]:' + getVal[2]); Logger.log('getVal[3]:' + getVal[3]); Logger.log('getVal[4]:' + getVal[4]); //要素毎の値を取得 Logger.log('getVal[0][0]:' + getVal[0][0]); Logger.log('getVal[0][1]:' + getVal[0][1]); Logger.log('getVal[0][2]:' + getVal[0][2]); Logger.log('getVal[0][3]:' + getVal[0][3]); Logger.log('getVal[0][4]:' + getVal[0][4]); } |
Logger.logの結果
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[19-05-20 03:21:48:814 JST] getRange(1,1,5,5):ID,名前,性別,年齢,,a1000,ビジボットイチロウ,男性,30,,a1001,ビジボットジロウ,男性,20,,a1002,ビジボットサブロウ,男性,20,,a1003,ビジボットシロウ,男性,10, [19-05-20 03:21:48:815 JST] length:5 [19-05-20 03:21:48:815 JST] getVal[0].length:5 [19-05-20 03:21:48:815 JST] getVal[0]:ID,名前,性別,年齢, [19-05-20 03:21:48:816 JST] getVal[1]:a1000,ビジボットイチロウ,男性,30, [19-05-20 03:21:48:816 JST] getVal[2]:a1001,ビジボットジロウ,男性,20, [19-05-20 03:21:48:817 JST] getVal[3]:a1002,ビジボットサブロウ,男性,20, [19-05-20 03:21:48:817 JST] getVal[4]:a1003,ビジボットシロウ,男性,10, [19-05-20 03:21:48:817 JST] getVal[0][0]:ID [19-05-20 03:21:48:818 JST] getVal[0][1]:名前 [19-05-20 03:21:48:818 JST] getVal[0][2]:性別 [19-05-20 03:21:48:818 JST] getVal[0][3]:年齢 [19-05-20 03:21:48:818 JST] getVal[0][4]: |
2次元配列を取得する場合、配列の番号を(getVal[0]やgetVal[0][0]などで)指定してデータを取り出すことができます。配列の要素数も「length」を使えば簡単に取得できるのでfor文とかで使えます。
以上でセルの値を取得する方法は終わりです。次は値を変更します。
便利なGASレシピ集!に戻る場合は以下から