1. ホーム
  2. /
  3. [GAS]
  4. /
  5. 【GAS】getColumn()で範囲の開始列番号を取得する方法|列単位のループ処理に応用

【GAS】getColumn()で範囲の開始列番号を取得する方法|列単位のループ処理に応用

【GAS】getColumn()で範囲の開始列番号を取得する方法|列単位のループ処理に応用

Google Apps Script (GAS)でスプレッドシートの特定のに対して処理を行いたい時、getColumn()は欠かせない基本メソッドです。このメソッドを使えば、指定した範囲がどの列から始まっているかを数値で簡単に取得できます。

この記事では、getColumn()の基本的な使い方から、列単位で処理を繰り返す実践的なループ処理まで、分かりやすく解説します。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索

getColumn()の基本的な使い方

getColumn()Rangeオブジェクトに適用するメソッドで、その範囲の一番左の列番号を返します。 スプレッドシートの列はA列を1、B列を2、C列を3…という数値で管理されており、getColumn()はこの数値を返します。

単一セルの場合

function getSingleColumnNumber() {
  const sheet = SpreadsheetApp.getActiveSheet();
  
  // C5セルを取得
  const range = sheet.getRange("C5");
  
  // C列は3番目なので「3」が返る
  const columnNumber = range.getColumn();
  console.log(columnNumber); // 3
}

複数セルの範囲の場合

複数セルの範囲を指定した場合でも、返すのは**範囲の開始列(一番左の列)**の番号だけです。

function getRangeColumnNumber() {
  const sheet = SpreadsheetApp.getActiveSheet();

  // 範囲 B2:D5 を取得
  const range = sheet.getRange("B2:D5");
  
  // 範囲の開始はB列(2番目)なので「2」が返る
  const startColumn = range.getColumn();
  console.log(startColumn); // 2
}

D列の番号である4は取得できない点に注意してください。範囲の列数を取得したい場合は、getWidth()メソッドを使います。

実践例:範囲内のすべての列をループ処理する

getColumn()は、範囲の開始列を特定し、そこからgetWidth()(範囲の列数)分だけループ処理を行う際によく使われます。

以下の例では、選択した範囲(例: B2:D5)の各列のヘッダー(1行目)に背景色を設定します。

function formatHeadersOfSelectedRange() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const range = SpreadsheetApp.getActiveRange(); // 現在選択している範囲

  if (!range) {
    console.log("範囲が選択されていません。");
    return;
  }

  const startCol = range.getColumn();    // 範囲の開始列
  const numCols = range.getWidth();      // 範囲の列数

  // 開始列から終了列までループ
  for (let i = 0; i < numCols; i++) {
    const currentCol = startCol + i;
    // 各列の1行目のセルに背景色を設定
    sheet.getRange(1, currentCol).setBackground("#d9ead3"); // 薄い緑色
  }
}

このスクリプトを実行すると、選択範囲のヘッダー部分だけを動的にフォーマットできます。

実践例2:シート全体の列を操作する

getLastColumn()と組み合わせることで、シート全体の列を対象とした処理も簡単に書けます。

function setColumnWidthsForAll() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const lastColumn = sheet.getLastColumn(); // シートでデータが存在する最終列

  // 1列目 (A列) から最終列までループ
  for (let i = 1; i <= lastColumn; i++) {
    // i番目の列幅を100ピクセルに設定
    sheet.setColumnWidth(i, 100);
  }
}

まとめ

getColumn()は、GASで列単位の操作を行う際の起点となる重要なメソッドです。

  • 指定したRange開始列番号(A=1)を返す。
  • 複数セルの範囲の場合も、一番左の列の番号のみを返す。
  • getWidth()getLastColumn()と組み合わせたforループで、列単位の反復処理を簡単に実装できる。

このメソッドをマスターし、スプレッドシートの列操作を自由に自動化しましょう。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索
【`getColumn`メソッドの活用法】スプレッドシートで列番号を取得する使い方・具体例・サンプルコードを徹底解説! – AIと学ぶ!様々なテーマ【りんやん実験室】

GAS スプレッドシートの指定している範囲の列番号を取得する

GAS(Google Apps Script)で、スプレッドシートの指定している範囲の列番号を取得する手順を記述してます。「getColumn」で可能です。複数の範囲がある場合は一番初めに見つかった列番号が返ります。

【GAS】1行取得、getRangeで列全体取得、可変対応コピペ用【Google Apps Script】

GASで1行取得したり、getRangeで列全体を取得する方法のコピペで使えるサンプルコードをまとめています。この記事で解説しているメソッドgetRange()getMaxRows()getMaxColumns()getLastRow()g

【GAS】アクティブなセルを取得する

GASを使って現在アクティブになっている(選択している)セルを参照する方法について解説します。 アクティブなセルを取得する アクティブなセルの取得はgetActiveCellを使います。またgetActiveCellは複数セルを選択していて

GASでスプレッドシートの選択しているセル・範囲の位置(行番号・列番号)を取得する方法 | AutoWorker〜Google Apps Script(GAS)とSikuliで始める業務改善入門

Google Apps Script(GAS)でスプレッドシートの選択しているセルの位置を取得する方法を紹介します。 選択したセルや選択範囲の位置について行番号と列番号を取得するメ...

セル範囲にある列の列数を取得する:getNumColumns()【GAS】 | G Suite ガイド - G Suite ガイド:G Suite の導入方法や使い方を徹底解説!

getNumColumns() セル範囲にある列の列数を取得する。 サンプルコード // 現在アクティブなスプレッドシートを取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); // そのスプレッドシートにある最初のシートを取得 var sheet = ss.getSheets()[0]; // そのシートにある B2:D5 のセル範囲を取得 var range = sheet.getRange(“B2:D5”); // そのセル範囲にある列の列数を取得しログに出力 Logger.log(range.getNumColumns()); var ss = SpreadsheetApp.getActiveSpreadsheet(); // そのスプレッドシートにある最初のシートを取得 var sheet = ss.getSheets()[0]; // そのシートにある B2:D5 のセル範囲を取得 var range = sheet.getRange(“B2:D5”); // そのセル範囲にある列の列数を取得しログに出力 Logger.log(range.getNumColumns()); 引数 無し。 戻り値 数値 – 取得したセル範囲の列の列数 この記事が気に入ったら いいねしよう! […]

関連記事

【GAS】getCell()で範囲内の特定セルを操作する方法|getRange()との違いも解説

【GAS】getCell()で範囲内の特定セルを操作する方法|getRange()との違いも解説

Google Apps Script (GAS)でスプレッドシートを操作する上で、getCell(row, column)getRange()と並んで非常によく使われる基本的なメソッドです。特に、特定の範囲内をループで処理する際に絶大な効果を発揮します。

この記事では、getCell()の基本からgetRange()との使い分け、実践的な活用法までを分かりやすく解説します。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索

getCell()とは?

getCell(row, column)は、すでにある範囲(Rangeオブジェクト)の中で、指定した行・列番号(インデックス)に該当する単一のセルを取得するメソッドです。

【GAS】getDataRegion(dimension)で行・列単位のデータ範囲を正確に取得する方法

【GAS】getDataRegion(dimension)で行・列単位のデータ範囲を正確に取得する方法

Google Apps Script (GAS)でgetDataRegion()を使うと連続したデータ範囲を取得できますが、引数dimensionを指定することで、その能力をさらに高めることができます。この引数を使えば、行方向または列方向に限定してデータ範囲を取得することが可能です。

この記事では、getDataRegion(dimension)を使いこなし、複雑なシートから特定のデータ列や行だけをスマートに抜き出す方法を解説します。