今回の目標
前回はスプレッドシートからコーディングを始めるまで。
いわゆるGAS環境構築を行いました。
そのスプレッドシートの値をGASで出力してみたいと思います。
対象のスプレッドシート
スプレッドシートは
A1~A10まで適当に値を入力しています。
コード
コードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function myFunction() { // スクリプトを開いたスプレッドシートのワークブックを指定する let workbook = SpreadsheetApp.getActiveSpreadsheet(); console.log(workbook.getName()); // シート名でアクティブシートを指定する let active_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1'); console.log(active_sheet.getName()); // 指定したアクティブシートから、セルの値(単体)を取得する const active_sheet_range1 = active_sheet.getRange('A1'); console.log(active_sheet_range1.getValue()); // 指定したアクティブシートから、セルの値(複数))を取得する const active_sheet_range2 = active_sheet.getRange('A1:A10'); console.log(active_sheet_range2.getValues()); } |
実行結果(GASで出力)
実行結果は以下になります。
ワークブック名は書かなくても問題ないのですが、
確認のため出力してみました。
指定したシート名から
・A1の値
・A1~A10の値
がちゃんと取得できていますね!
簡単な解説
1. getActiveSpreadsheet()を使用して、アクティブなスプレッドシート(ワークブック)を取得しています。
1 2 |
// スクリプトを開いたスプレッドシートのワークブックを指定する let workbook = SpreadsheetApp.getActiveSpreadsheet(); |
・アクティブ = このGASファイルを起動したスプレッドシート
という認識で良いと思います。
2. getSheetByName(‘シート1’)を使用して、シート名を指定しています。
1 2 3 |
// シート名でアクティブシートを指定する let active_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1'); console.log(active_sheet.getName()); |
アクティブなワークブックでシート名は「シート1」を使用する。
という準備が行えました。
これでシートの操作が行えるので、セルを指定して値を取り出すだけです。
3. 単体セルと複数セルから値を出力する
1 2 3 4 5 6 7 |
// 指定したアクティブシートから、セルの値(単体)を取得する const active_sheet_range1 = active_sheet.getRange('A1'); console.log(active_sheet_range1.getValue()); // 指定したアクティブシートから、セルの値(複数))を取得する const active_sheet_range2 = active_sheet.getRange('A1:A10'); console.log(active_sheet_range2.getValues()); |
まずはA1セルのみの値です。
active_sheetには「シート1」が入っているので
active_sheet.getRange(‘A1’)
を行って、A1セルの値を指定しています。
active_sheet_range1.getValue()
にてA1セルの値を出力しています。
続いてA1~A10セルの値です。
getRangeまでは同じですね。先ほどは引数へ
A1のみでしたが、今回はA1:A10としています。
複数セルの値には
getValueではなく、getValuesを使用します!
active_sheet_range2.getValues()
とすることで、複数のセルから値が取得可能です。
またgetValues()を使用すると配列で返ってくるようです。
やってみるとセルの値は簡単に取得出来ました!
スプレッドシートに必要なデータを入力して
GASからの操作で何か面白い事が出来そうな気がしますね!
以上です。
最後までお読みいただきありがとうございました!