【GAS】Google Apps Script 活用事例文字列をセル垂直方向に自動で揃えるスクリプト
今回はGoogle Spreadsheetで長文を入力したときに、垂直方向に中央揃えにしてくれると楽だなと思って、スクリプトを書いてみました。
セルの高さが15px以上になったら、自動で処理を実行するようにしてみました。
/**
* 自動で文字列をセル垂直中央に配置する
*
*
*/
function autoVerticalAlignCenter() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名');
const activeSheet = SpreadsheetApp.getActiveSheet();
if(sheet.getName() !== activeSheet.getName()){
console.warn(`対象シートではないため、処理を終了します。`);
return
};
const activeCell = getActiveCell_(sheet);
const rowHeight = sheet.getRowHeight(activeCell.row);
console.log(`rowHeight: ${rowHeight} px`);
// 15px以上だったら、垂直方向を中央揃えにする
if(15 < rowHeight){
const range = sheet.getRange(activeCell.row, 1, 1, sheet.getLastColumn());
const values = range.getValues().map(row => row.map(value => 'middle'));
range.setVerticalAlignments(values);
}
}
/**
* シートオブジェクトを引数にアクティブなセルの値、行、列などの情報を取得する
*
* @param {SpreadsheetApp.Sheet} sheet - シートオブジェクト
* @return {Object.<number|string>}
*/
function getActiveCell_(sheet){
const activeCell = sheet.getActiveCell();
const activeDetail = {
sheetName: activeCell.getSheet().getName(),
row: activeCell.getRow(),
column: activeCell.getColumn(),
value: activeCell.getValue(),
range: activeCell.getA1Notation()
}
console.log(activeDetail);
return activeDetail
}
トリガーの設定はこんな感じ
この記事が気に入ったらサポートをしてみませんか?