lisz-works

プログラミングと興味を貴方に

スプレッドシートのスクリプトで値読み書き:Google Apps Script

【スポンサーリンク】

Google Apps Script

アクティブシート……つまり開いているシート自体にアクセスする処理を作りました!

というのも、Google Apps Script単体で作成よりも、スプレッドシートからスクリプトを作成することが多くなったからです。

何かあったら手軽にスプレッドシートに、データを出力して見たりできるし、管理も楽ですからね……

という訳でロジックのご紹介です。

はじめに

スプレッドシートとの連携(接続)をしないと、値の読み書きができません。

それについては、コチラをご参照くださいませ。

www.lisz-works.com

対象に値を入力

対象のセルに値をセットする関数です。

/**
 * アクティブシートの対象セルに文字列を入力
 * シンプルなシート書き込みです。
 * スプレッドシートにGASを組み込んでいる場合は、こちらを使用可能。
 *
 * @param msg 書き込み文字列
 * @param row 行番号
 * @param col 列番号
 */
function writeSheet(msg, row, col) {
  // Excelへデータの記入
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(row, col).setValue(msg);
  Logger.log(msg + "[" + row + ", " + col + "]");
}

範囲書き込み

開始セルから配列通りに書き込みを行います。

「複数データをセットしたい」

ってときは楽ちんです!

/**
 * アクティブシートの範囲書込します。
 *
 * @param msgArr 書込文字列を入れた2次元配列
 * @param startRow 書込開始行
 * @param startCol 書込開始列
 */
function writeRange(msgArr, startRow, startCol) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rowRange = msgArr.length;
  var colRange = msgArr[0].length;

  sheet.getRange(startRow, startCol, rowRange, colRange).setValues(msgArr);
}

読み込み

読み込み処理は、この範囲読み込みのみを作っています。

2次元配列で取得されるので、対象のセルを取得するよう、指標番号を指定して値を取得します。

/**
 * アクティブシートの範囲読込します。
 *
 * @param startRow 読込開始行
 * @param startCol 読込開始列
 * @param rowSize 読込行サイズ
 * @param colSize 読込列サイズ
 */
function readRange(startRow, startCol, rowSize, colSize) {
  var sheet = SpreadsheetApp.getActiveSheet();
  return sheet.getRange(startRow, startCol, rowSize, colSize).getValues();
}

あとがき

この処理自体を使ったり、自分なりにコーディングしてみて使ってみてください!

だいぶ前に組んで放置してたものなので参考にしたものは忘れました……ごめんなさい……