GAS開発者向けにスプレッドシートの水平垂直配置機能をすべてまとめました。
セル内のデータの配置を変更し、表に並べられた値を整列して見やすくしたい場面って頻繁にありますよね。
左右の水平方向への配置と上下の垂直方向の配置変更です。なぜスプレッドシートはデフォルト垂直方向が下なんでしょうか。個人的には上がいいんですけどね。(Excelは中央)
ぜひ簡単に配置変更できるようにしてみてください。
水平垂直配置に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
Google Apps Script スプレッドシート 基礎 リファレンス
当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。
若干、文言がおかしい可能性がありますが、あらかじめご了承ください。
GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。
基本的な仕様やよく使われる機能の設定方法がまとまっています。
※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。
水平垂直設定一覧
表示形式数字設定例の一覧です。
配置設定内容
水平配置(左/中央/右)、垂直配置(上/中央/下)の設定内容
| 水平/垂直 | 位置 | 設定内容 | 
|---|---|---|
| 水平 | 左 | .setHorizontalAlignment("left") | 
| 中央 | .setHorizontalAlignment("center") | |
| 右 | .setHorizontalAlignment("right") | |
| 垂直 | 上 | .setVerticalAlignment("top") | 
| 中央 | .setVerticalAlignment("middle") | |
| 下 | .setVerticalAlignment("bottom") | 
セル範囲クラス[Range]の水平、垂直の配置設定
セル範囲の水平方向(Horizontal)、垂直方向(Vertical)の配置設定メソッドです。
水平配置設定[setHorizontalAlignment(配置)]
setHorizontalAlignment(alignment)
与えられた範囲(左/中央/右)に対して水平(左から右)の配置を設定します。
function setHorizontalAlignmentSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange("B2");
  cell.setHorizontalAlignment("center");
}
| 名前 | タイプ | 説明 | 
|---|---|---|
| alignment | String | 配置は 'left'、 'center'、または 'normal'です。 null値は配置をリセットします。 | 
Return
Range - 連鎖用のセル範囲。
水平配置配列設定[setHorizontalAlignments(配置's)]
setHorizontalAlignments(alignments)
水平方向の線形グリッドを設定します。 setHorizontalAlignment(alignment)を参照してください。
function setHorizontalAlignmentsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // 2次元配列のサイズは範囲のサイズと一致する必要があります。
  var horizontalAlignments = [
    [ "left", "right", "center" ]
  ];
  var range = sheet.getRange("B2:D2");
  range.setHorizontalAlignments(horizontalAlignments);
}
| 名前 | タイプ | 説明 | 
|---|---|---|
| alignments | Object[][] | 配置の2次元配列、 'left'、 'center'、または 'normal'。 null値は配置をリセットします。 | 
Return
Range - 連鎖用のセル範囲。
垂直配置設定[setVerticalAlignment(配置)]
setVerticalAlignment(alignment)
与えられた範囲(上/中/下)の垂直方向(上から下へ)の配置を設定します。
function setVerticalAlignmentSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange("B2");
  cell.setVerticalAlignment("middle");
}
| 名前 | タイプ | 説明 | 
|---|---|---|
| alignment | String | 配置は 'top'、 'middle'、 'bottom'のいずれかです。 null値は配置をリセットします。 | 
Return
Range - 連鎖用のセル範囲。
垂直配置配列設定[setVerticalAlignments(配置's)]
setVerticalAlignments(alignments)
垂直方向の配置の2次元配列を設定します(この範囲のサイズと一致する必要があります)。
function setVerticalAlignmentsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // 2次元配列のサイズは範囲のサイズと一致する必要があります。
  var alignments = [
    [ "top", "middle", "bottom" ]
  ];
  var range = sheet.getRange("B2:D2");
  range.setVerticalAlignments(alignments);
}
| 名前 | タイプ | 説明 | 
|---|---|---|
| alignments | Object[][] | 配列の2次元配列、 'top'、 'middle'、または 'bottom'。 null値は配置をリセットします。 | 
Return
Range - 連鎖用のセル範囲。
 
 
セル範囲クラス[Range]の水平、垂直の配置取得
セル範囲の水平方向(Horizontal)、垂直方向(Vertical)の配置取得メソッドです。
水平配置取得[getHorizontalAlignment()]
getHorizontalAlignment()
範囲の左上隅にあるセルのテキスト(左/中央/右)の水平方向の配置を返します。
function getHorizontalAlignmentSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange("B2:D4");
  Logger.log(range.getHorizontalAlignment());
}
Return
String - セル内のテキストの水平方向の配置です。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getHorizontalAlignment()
水平配置配列取得[getHorizontalAlignments()]
getHorizontalAlignments()
範囲内のセルの水平方向の配置を返します。
function getHorizontalAlignmentsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  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]);
    }
  }
}
Return
String[][] - 範囲内のセルに関連付けられたテキストの水平方向の配置の2次元配列。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getHorizontalAlignments()
垂直配置取得[getVerticalAlignment()]
getVerticalAlignment()
範囲の左上隅にあるセルの垂直方向の配置(上部/中央/下部)を返します。
function getVerticalAlignmentSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange("B2:D4");
  Logger.log(range.getVerticalAlignment());
}
Return
String - セル内のテキストの垂直方向の配置です。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getVerticalAlignment()
垂直配置配列取得[getVerticalAlignments()]
getVerticalAlignments()
範囲内のセルの垂直方向の配置を返します。
function getVerticalAlignmentsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange("B2:D4");
  var results = range.getVerticalAlignments();
  for (var i in results) {
    for (var j in results[i]) {
      Logger.log(results[i][j]);
    }
  }
}
Return
String[][] - 範囲内のセルに関連付けられたテキストの垂直方向の配置の2次元配列。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getVerticalAlignments()
セル範囲リストクラス[RangeList]の水平、垂直の配置設定
セル範囲リストの水平方向(Horizontal)、垂直方向(Vertical)の配置設定メソッドです。
水平配置設定[setHorizontalAlignment(配置)]
setHorizontalAlignment(alignment)
範囲リストの各範囲の水平方向の配置を設定します。配置オプションは 'left'、 'center'、または 'right'です。
function setHorizontalAlignmentSample() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangeList = sheet.getRangeList(['A:A', 'C:C']);
  rangeList.setHorizontalAlignment("center");
}
| 名前 | タイプ | 説明 | 
|---|---|---|
| alignment | String | 配置は 'left'、 'center'、または 'normal'です。 null値は配置をリセットします。 | 
Return
RangeList - 連鎖用のセル範囲リスト。
垂直配置設定[setVerticalAlignment(配置)]
setVerticalAlignment(alignment)
範囲リストの各範囲の垂直方向の配置を設定します。配置オプションは 'top'、 'middle'または 'bottom'です。
function setVerticalAlignmentSample() {
  // 範囲リストの垂直方向の配置を中央に設定します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangeList = sheet.getRangeList(['D4', 'B2:C4']);
  rangeList.setVerticalAlignment("middle");
}
| 名前 | タイプ | 説明 | 
|---|---|---|
| alignment | String | 配置は 'top'、 'middle'、 'bottom'のいずれかです。 null値は配置をリセットします。 | 
Return
RangeList - 連鎖用のセル範囲リスト。
最後に
GAS水平垂直配置設定機能のまとめをご紹介させていただきました。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
 
 

コメント