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

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ループで、列単位の反復処理を簡単に実装できる。
このメソッドをマスターし、スプレッドシートの列操作を自由に自動化しましょう。



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

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

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

Google Apps Script(GAS)でスプレッドシートの選択しているセルの位置を取得する方法を紹介します。 選択したセルや選択範囲の位置について行番号と列番号を取得するメ...
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()); 引数 無し。 戻り値 数値 – 取得したセル範囲の列の列数 この記事が気に入ったら いいねしよう! […]