セルの垂直配置設定(上寄せ・中央寄せ・下寄せ)をGASから動的に制御する【Google Apps Script】
#Google Apps Script
#スプレッドシート
にメンテナンス済み
Google スプレッドシートでは、セルの垂直配置設定が標準で下揃えになっています。
シート内全てについて同じ垂直配置設定を適用させる場合は、あらかじめスプレッドシート側で設定しておけば問題ありませんが、動的に、部分的に設定したい場合もあるかと思います。
今回は GAS からセルの垂直配置設定を変更する方法をご紹介します。
垂直配置情報を取得する
垂直配置情報の取得には、以下の関数を使用します。
/** 対象範囲の垂直方向設定 */
const aligns = range.getVerticalAlignments();
サンプルコード
/**
* 対象スプレッドシートのID
* https://docs.google.com/spreadsheets/d/〇〇〇/edit の〇〇〇の部分
*/
const SPREAD_SHEET_ID = '_______________';
const outputAlignments = () => {
/** 対象スプレッドシート */
const ss = SpreadsheetApp.openById(SPREAD_SHEET_ID);
/** 対象シート */
const sheet = ss.getSheetByName('シート1');
/** 対象セル範囲 */
const range = sheet.getRange('A1:B3');
/** 対象範囲の垂直方向設定 */
const aligns = range.getVerticalAlignments();
for (const row of aligns) {
for (const cell of row) {
console.log(cell);
}
}
};
実行結果
11:22:37 お知らせ 実行開始
11:22:38 情報 top
11:22:38 情報 middle
11:22:38 情報 bottom
11:22:38 お知らせ 実行完了
垂直配置情報を設定する
垂直配置情報の設定には、以下の関数を使用します。
// セル範囲すべてに適用させる場合
range.setVerticalAlignment('middle');
// セル単位で設定する場合(構造を取得した配列と合わせる必要があります)
range.setVerticalAlignments([['top', 'middle', 'bottom']]);
サンプルコード
/**
* 対象スプレッドシートのID
* https://docs.google.com/spreadsheets/d/〇〇〇/edit の〇〇〇の部分
*/
const SPREAD_SHEET_ID = '_______________';
const setAlignments = () => {
/** 対象スプレッドシート */
const ss = SpreadsheetApp.openById(SPREAD_SHEET_ID);
/** 対象シート */
const sheet = ss.getSheetByName('シート1');
/** 対象セル範囲 */
const range = sheet.getRange('A1:B3');
// セル範囲すべてに適用させる場合
range.setVerticalAlignment('middle');
// セル単位で設定する場合(構造を取得した配列と合わせる必要があります)
range.setVerticalAlignments([['top', 'middle', 'bottom']]);
};
権限エラーが表示される場合
GAS からスプレッドシートにアクセスする場合、GAS がアクセスすることを許可する必要があります。 許可されていない状態でプログラムを実行すると、以下のようなメッセージが表示されます。
このプロジェクトを実行するには、ご利用の Google アカウントへのアクアセスを許可する必要があります。再試行して、許可してください。
再度実行しなおすことで、権限を付与するか確認するダイアログが表示されるので、案内に従って権限を付与してください。