GASでスプレッドシートのセルの垂直配置(上・中央・下)を取得する方法

Googleスプレッドシートを使っていると、「テキストを上下どこに配置するか」を調整したくなることがあるばい。そんなときに役立つのが、GAS(Google Apps Script)の getVerticalAlignment() メソッドじゃ。本記事では、このメソッドを使いこなす方法を、実践的なスクリプト例とともに解説するばい!

スポンサーリンク

1. getVerticalAlignment() メソッドとは?

GASを使うと、スプレッドシートのセル内のテキスト配置を取得・設定できるんじゃ。この getVerticalAlignment() は、特定のセルの垂直配置を取得するメソッドで、以下の3種類の値を返すばい。

  • top(上寄せ)
  • middle(中央揃え)
  • bottom(下寄せ)

例えば、セル A1 の垂直配置を取得するスクリプトはこんな感じじゃ。

function checkVerticalAlignment() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange("A1");
  Logger.log(range.getVerticalAlignment());
}

このコードを実行すると、現在の A1 セルの垂直配置がログに表示されるさ。

2. 垂直配置を変更する方法

getVerticalAlignment() は取得専用のメソッドばってん、配置を変更したいときは setVerticalAlignment() を使うばい。

function setVerticalAlignmentExample() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange("A1:C3");
  range.setVerticalAlignment("middle"); // A1~C3のセルを中央揃えにする
}

これを実行すると、指定した範囲のセルが中央揃えになるばい。

3. 複数セルの配置を一括取得・変更する

スプレッドシートの広範囲に適用するときは、一括取得・設定メソッドを活用すると効率的じゃ。

一括取得(getVerticalAlignments())

function getMultipleVerticalAlignments() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange("A1:C3");
  const alignments = range.getVerticalAlignments();
  Logger.log(alignments);
}

getVerticalAlignments() を使うと、セルごとの配置状態を二次元配列で取得できるばい。

一括設定(setVerticalAlignments())

function setMultipleVerticalAlignments() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange("A1:C3");
  const alignments = [["top", "middle", "bottom"], ["bottom", "middle", "top"], ["middle", "top", "bottom"]];
  range.setVerticalAlignments(alignments);
}

このスクリプトでは、A1~C3の各セルに異なる垂直配置を適用するばい。

4. 応用テクニック

セルの内容に応じた自動配置

例えば、セルの内容が長いときは「上揃え」、短いときは「中央揃え」にする自動処理を作ることもできるけ!

function autoAdjustVerticalAlignment() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getDataRange();
  const values = range.getValues();
  let alignments = [];

  values.forEach(row => {
    let alignmentRow = [];
    row.forEach(cell => {
      if (cell.toString().length > 50) {
        alignmentRow.push("top");
      } else {
        alignmentRow.push("middle");
      }
    });
    alignments.push(alignmentRow);
  });

  range.setVerticalAlignments(alignments);
}

これで、長いテキストは上寄せ、短いテキストは中央揃えに自動設定されるばい。

5. まとめ

GASの getVerticalAlignment() メソッドとその関連メソッドを活用すれば、スプレッドシートの視認性を向上させることができるじゃ。

  • getVerticalAlignment() で単一セルの配置を取得
  • setVerticalAlignment() で特定範囲の配置を設定
  • getVerticalAlignments() & setVerticalAlignments() で複数セルを一括操作
  • スクリプトを工夫すれば、自動配置調整も可能

これらを活用して、より見やすく使いやすいスプレッドシートを作ってみるばい!

コメント

タイトルとURLをコピーしました