Google Apps Script (GAS) を使ったスプレッドシートの自動化において、複数セルの水平配置(左寄せ・中央寄せ・右寄せなど)を一括で取得するニーズは多く発生します。getHorizontalAlignments() メソッドは、このニーズに応える強力な機能であり、効率的な書式設定の分析や、それに基づいた自動処理を可能にします。
本記事では、getHorizontalAlignments() の基本的な使い方から、単一セル対象の getHorizontalAlignment() との違い、大規模データ処理における活用法、動的な範囲指定、そしてエラー対策やパフォーマンス最適化まで、具体的なコード例を交えて徹底解説します。このメソッドをマスターし、スプレッドシートの見た目とデータ構造の分析を効率化しましょう。

getHorizontalAlignments()メソッドの基本
Googleスプレッドシートのセルの書式設定は Range クラスを介して操作します。水平方向の配置情報を取得するメソッドには、単一セルを対象とする getHorizontalAlignment() と、複数セルを対象とする getHorizontalAlignments() の2つがあります。
getHorizontalAlignments() は、指定したセル範囲の各セルの水平方向の配置情報を二次元配列で返します。戻り値は文字列で、left(左寄せ)、center(中央揃え)、right(右寄せ)、general(標準)のいずれかです。
// 指定した範囲の水平配置情報を取得
const alignments = range.getHorizontalAlignments();
基本的な実装パターン
指定した範囲(例: B2:C3)の配置情報を取得し、ログに出力する基本的なコードは以下のようになります。
function sampleRetrieval() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('データシート');
const range = sheet.getRange('B2:C3');
const alignments = range.getHorizontalAlignments();
alignments.forEach((row, rowIndex) => {
row.forEach((alignment, colIndex) => {
// セル番地を計算して表示
const cellAddress = sheet.getRange(2 + rowIndex, 2 + colIndex).getA1Notation();
console.log(`セル ${cellAddress}: ${alignment}`);
});
});
}
このコードにより、各セルの水平配置がどのように設定されているかを簡単に確認できます。
大規模なデータ処理への応用
大量のセルを扱う場合、getDataRange() を使ってシート全体のデータ範囲を対象に処理を行うと効率的です。以下の例では、右寄せに設定されているセルの背景色を変更しています。
function bulkProcessing() {
const sheet = SpreadsheetApp.getActiveSheet();
const dataRange = sheet.getDataRange();
const alignData = dataRange.getHorizontalAlignments();
// 右寄せのセルをハイライト
alignData.forEach((row, i) => {
row.forEach((align, j) => {
if(align === 'right') {
sheet.getRange(i + 1, j + 1).setBackground('#FFF3E0');
}
});
});
}
このように、配置情報に基づいて特定のセルを視覚的にハイライトすることで、データの可読性を向上させることができます。
動的な範囲指定と実践的活用
実務では、データ量が変動することがよくあります。getLastRow() や getLastColumn() を使って動的に処理範囲を決定することで、より柔軟なスクリプトを作成できます。
function dynamicRangeHandling() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const lastCol = sheet.getLastColumn();
if (lastRow <= 1 || lastCol <= 1) return; // データが少ない場合は処理しない
const targetRange = sheet.getRange(2, 2, lastRow - 1, lastCol - 1);
const alignMatrix = targetRange.getHorizontalAlignments();
// 配置情報に基づいたデータ解析や処理をここに記述
// analyzeAlignmentPatterns(alignMatrix);
}
エラーハンドリングと最適化
予期せぬエラーを回避するためには、適切なエラーハンドリングが重要です。例えば、取得した配置情報の配列の次元が、対象範囲の行数・列数と一致するかを検証することで、データの不整合を未然に防ぐことができます。
function safeAlignmentRetrieval() {
const range = SpreadsheetApp.getActiveRange();
if (!range) return;
try {
const aligns = range.getHorizontalAlignments();
// 配列の次元を検証
if (aligns.length !== range.getNumRows() ||
(aligns.length > 0 && aligns[0].length !== range.getNumColumns())) {
throw new Error('取得したデータの次元が範囲と一致しません');
}
// 正常な場合の処理をここに記述
} catch(e) {
console.error(`エラーが発生しました: ${e.message}`);
// エラー発生時の代替処理や再試行ロジックを実装
}
}
まとめ
getHorizontalAlignments() メソッドは、スプレッドシートの複数セルの水平配置情報を効率的に一括取得し、データ分析や業務プロセスの自動化に活用するための強力なツールです。
- 効率性:
getHorizontalAlignment()と異なり、広範囲のセル配置を一度の呼び出しで取得可能。 - 柔軟性: 大規模なデータセットの書式分析、特定の条件に基づく自動整形、レポート作成などに活用。
- 堅牢性: 動的な範囲指定や適切なエラーハンドリングにより、スクリプトの安定性が向上。
このメソッドをマスターすることで、スプレッドシートの見た目の管理とデータ処理をよりスマートに、そして効率的に行えるようになるでしょう。


GAS(Google Apps Script)で、スプレッドシートのセルの水平方向の配置を取得する手順を記述してます。
getHorizontalAlignments() セル範囲の水平方向の配置(左寄せ、中央寄せ、右寄せ)をセルごとに取得する。 サンプルコード // 現在アクティブなスプレッドシートを取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); // そのスプレッドシートにある最初のシートを取得 var sheet = ss.getSheets()[0]; // そのシートにある B2:D4 のセル範囲を取得 var range = sheet.getRange(“B2:D4”); // そのセル範囲に設定されている水平方向の配置をセルごとに取得 var results = range.getHorizontalAlignments(); // そのセル範囲の行数だけ処理 for (var i in results) { // そのセル範囲の列数だけ処理 for (var j in results[i]) { // そのセルに設定されている水平方向の配置を取得しログに出力 Logger.log(results[i][j]); } } var ss = SpreadsheetApp.getActiveSpreadsheet(); // […]


GAS開発者向けにスプレッドシートの水平垂直配置機能をすべてまとめました。セル内のデータの配置を変更し、表に並べられた値を整列して見やすくしたい場面って頻繁にありますよね。左右の水平方向への配置と上下の垂直方向の配置変更です。なぜスプレッド
getHorizontalAlignment() セルの水平方向の配置(左寄せ、中央寄せ、右寄せ)を取得する。 サンプルコード // 現在アクティブなスプレッドシートを取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); // そのスプレッドシートにある最初のシートを取得 var sheet = ss.getSheets()[0]; // そのシートにある B2:D4 のセル範囲を取得 var range = sheet.getRange(“B2:D4”); // そのセルの水平方向の配置(左寄せ、中央寄せ、右寄せ)を取得 Logger.log(range.getHorizontalAlignment()); var ss = SpreadsheetApp.getActiveSpreadsheet(); // そのスプレッドシートにある最初のシートを取得 var sheet = ss.getSheets()[0]; // そのシートにある B2:D4 のセル範囲を取得 var range = sheet.getRange(“B2:D4”); // そのセルの水平方向の配置(左寄せ、中央寄せ、右寄せ)を取得 Logger.log(range.getHorizontalAlignment()); 引数 無し。 戻り値 文字列 – 取得した水平方向の配置(left:左寄せ、center:中央寄せ、right:右寄せ) この記事が気に入ったら いいねしよう! […]
Google Apps Script(GAS)で業務を自動化するスキルを動画で解説。サンプルコードを使い、スプレッドシートのデータ操作やメール送信の自動化を実践的に学び、ビジネススキルを向上させましょう。スキマ時間を有効活用してリスキリング・スキルアップ。ビジネスを学ぶならGLOBIS学び放題(グロ放題)×知見録。

Google Apps Script (GAS) でこのセル範囲のセルの水平方向・垂直方向のテキスト位置を取得・設定する

業務でGASを使ってみたいけれど、どう活用したら良いか分からないという方向けに、そのまま使えるサンプルコード付きの活用例を用意しました。GAS初心者でも記事の通り手を動かせば10分でプログラムを作成できます。
