2022年12月22日木曜日

Google App Script で使用している列の一覧を取得する方法

Google App Script で使用している列の一覧を取得する方法

概要

例えば A から AB まで列を広げている場合に A から AB までを持つ配列を取得する方法を紹介します

環境

  • Google App Script 2022/12/16 時点

サンプルコード

// 数字情報を列のアルファベットに変換するメソッド
function columnToLetter(column) {
  var temp, letter = '';
  while (column > 0)
  {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
  }
  return letter;
}

// 指定の配列を number 個ずつ分割するメソッド
function sliceByNumber(array, number) {
  const length = Math.ceil(array.length / number)
  return new Array(length).fill().map((_, i) =>
    array.slice(i * number, (i + 1) * number)
  )
}

// メイン
function main() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();
  var activeCols = sliceByNumber([...Array(sheet.getLastColumn()).keys()].map(i => columnToLetter(i+1)), 3);
}

ちょっと解説

[...Array(sheet.getLastColumn()).keys()] で最初の列からアクティブになっている最後の列までの数字配列を取得します

その結果に対して map で columnToLetter を実行し数字 -> アルファベットの変換をしています
数字状態の配列は0から始まっているので1から始めるために+1しています (A列は1に割り当てているので)

あとは sliceByNumber で配列を更に3つずつに分割しています
分割が必要ない場合は sliceByNumber の実行は不要です

最後に

これでどんどん列が増えていっても自動で列情報を取得することができます

0 件のコメント:

コメントを投稿