今回行うこと
スプレッドシートに書き込まれている
データの範囲をA1形式(B2:E6、A1:E6など)で取得してみたいと思います。
↓ 実行結果
A1形式で取得するコード
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
function myFunction_0529003() { /*********************** * スプレッドシートの指定 ***********************/ // 現在開いているスプレッドシートを読み込む let active_sheet01 = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシートに新しいシートを追加挿入 let newSheet = active_sheet01.insertSheet(0); // タイトル部分は固定 let B02 = newSheet.getRange(2,2); let C02 = newSheet.getRange(2,3); let D02 = newSheet.getRange(2,4); let E02 = newSheet.getRange(2,5); // タイトル部分(A-D列) B02.setValue("果物"); C02.setValue("価格"); D02.setValue("個数"); E02.setValue("合計金額"); // A列の果物 let A03 = newSheet.getRange(3,2); let A04 = newSheet.getRange(4,2); let A05 = newSheet.getRange(5,2); let A06 = newSheet.getRange(6,2); // A列への書き込み A03.setValue("ばなな"); A04.setValue("りんご"); A05.setValue("みかん"); A06.setValue("いちご"); /******************************************************* * 価格と個数をランダムで設定し、合計は数式を使用して書き込む *******************************************************/ for(let i = 3; i <= newSheet.getLastRow(); i++){ // 価格のランダム newSheet.getRange(i,3).setValue(Math.floor(Math.random()*1000)+1); // 個数のランダム newSheet.getRange(i,4).setValue(Math.floor(Math.random()*10)+1); // 合計(D列)は数式を使用する // =B列i行目 * C列i行目 newSheet.getRange(i,5).setValue("=C" + i + "*" + "D" + i); } /******************************************************* * range:自分で指定した範囲をA1形式で取得 * data_range:gasがA1から自動で取得した範囲をA1形式で取得 *******************************************************/ var range = newSheet.getRange(2, 2, 5, 4); var data_range = newSheet.getDataRange(); // 自分で指定した範囲A1形式で返してくれる Logger.log("range = " + range.getA1Notation()); // 自動でスプレッドシートのA1からを検索してA1形式で返してくれる Logger.log("data_range = " + data_range.getA1Notation()); } |
解説
今回Logger.logを2か所で表示しています。
・1つはgetRangeを使用した方法
・1つはgetDataRangeを使用した方法
ログを見て頂くと
・range = B2:E6
・data_range = A1:E6
となっています。
getRangeした方は自分で指定した範囲
getDataRangeした方はA1が空白でもA1からデータが格納されている範囲。
をそれぞれ返してくれることが分かりました。
あまり頻繁には使用しないかもしれないですが、覚えておいて損はないかと思います!
今回は以上となります。
最後までお読みいただきありがとうございました!