GAS開発者向けにスプレッドシートのテキスト回転機能をすべてまとめました。
テキストをはみ出さず、セルにどうしてもスッポリ収めたい時、テキストを回転させてオシャレに表示することも可能になります。
角度を指定できたり、縦書きにしてみたり、自由に設定できるのでテキストの長さに併せて角度を変化させることもできます。
テキスト回転に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
Google Apps Script スプレッドシート 基礎 リファレンス
当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。
若干、文言がおかしい可能性がありますが、あらかじめご了承ください。
GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。
まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。
GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。
基本的な仕様やよく使われる機能の設定方法がまとまっています。
※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。
セル範囲クラス[Range]のテキスト回転設定
セル範囲のテキスト回転取得メソッドです。配列設定もあります。縦書きは別関数(setVerticalText)になります。
テキスト回転設定(角度)[setTextRotation(角度)]
setTextRotation(degrees)
範囲内のセルのテキスト回転設定を設定します。入力は、標準テキストの向きと目的の向きの間の角度に対応します。ゼロの入力は、テキストが標準の方向に設定されていることを示します。
左から右へのテキスト方向では、正の角度は反時計回りの方向になりますが、右から左へはそれらは時計回りの方向になります。
function setTextRotationSample() {
// 範囲B2:D4内のすべてのセルを、テキストを45度上に回転させるように設定します。
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("B2:D4");
range.setTextRotation(45);
}
名前 | タイプ | 説明 |
---|---|---|
degrees | Integer | 標準方向と目的の方向の間の目的の角度。左から右へのテキストの場合、正の角度は反時計回りの方向です。 |
Return
Range - 連鎖用のセル範囲。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setTextRotation(degrees)
テキスト回転配列設定(回転)[setTextRotations(回転's)]
setTextRotations(rotations)
テキスト回転の2次元配列を設定します。
function setTextRotationsSample() {
// 範囲A1:B2から範囲C5:D6までのすべてのテキスト回転をコピーします。
var sheet = SpreadsheetApp.getActiveSheet();
var range1 = sheet.getRange("A1:B2");
var range2 = sheet.getRange("C5:D6");
range2.setTextRotations(range1.getTextRotations());
}
名前 | タイプ | 説明 |
---|---|---|
rotations | TextRotation[][] | 設定するテキスト回転設定。 |
Return
Range - 連鎖用のセル範囲。
テキスト縦書き設定[setVerticalText(垂直有無)]
setVerticalText(isVertical)
範囲内のセルのテキストを重ねるかどうかを設定します。テキストが垂直に積み重ねられている場合、テキストの回転角度の設定は無視されます。
function setVerticalTextSample() {
// B2:D4の範囲内にあるすべてのセルを縦に積み上げたテキストに設定します。
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("B2:D4");
range.setVerticalText(true);
}
名前 | タイプ | 説明 |
---|---|---|
isVertical | Boolean | テキストを重ねるかどうか。 |
Return
Range - 連鎖用のセル範囲。
セル範囲クラス[Range]のテキスト回転取得
セル範囲のテキスト回転機能メソッドです。
テキスト回転取得[getTextRotation()]
getTextRotation()
範囲の左上のセルのテキスト回転設定を返します。
function getTextRotationSample() {
// セルのテキスト回転設定を記録します。
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange("A1");
Logger.log(cell.getTextRotation());
}
Return
TextRotation - テキストの回転設定。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getTextRotation()
テキスト回転配列取得[getTextRotations()]
getTextRotations()
範囲内のセルのテキスト回転設定を返します。
function Sample() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("B2:D4");
var results = range.getTextRotations();
for (var i in results) {
for (var j in results[i]) {
var rotation = results[i][j];
Logger.log("Cell [%s, %s] has text rotation: %v", i, j, rotation);
}
}
}
Return
TextRotation[][] - 範囲内のセルに関連付けられたテキスト回転の2次元配列。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getTextRotations()
セル範囲リストクラス[RangeList]のテキスト回転設定
セル範囲リストのテキスト回転設定メソッドです。縦書きは別関数(setVerticalText)になります。
テキスト回転設定[setTextRotation(角度)]
setTextRotation(degrees)
範囲リスト内の各範囲内のセルのテキスト回転設定を設定します。入力は、標準テキストの向きと目的の向きの間の角度に対応します。ゼロの入力は、テキストが標準の方向に設定されていることを示します。
左から右へのテキスト方向では、正の角度は反時計回りの方向になりますが、右から左へはそれらは時計回りの方向になります。
function Sample() {
// セルをA1:A10とC1:C10の範囲に設定して、テキストを45度回転させます。
var sheet = SpreadsheetApp.getActiveSheet();
var rangeList = sheet.getRangeList(['A1:A10', 'C1:C10']);
rangeList.setTextRotation(45);
}
名前 | タイプ | 説明 |
---|---|---|
degrees | Integer | 標準方向と目的の方向の間の目的の角度。左から右へのテキストの場合、正の角度は反時計回りの方向です。 |
Return
RangeList - 連鎖用のセル範囲リスト。
テキスト縦書き設定[setVerticalText(垂直有無)]
setVerticalText(isVertical)
範囲リスト内の各範囲のセルのテキストをスタックするかどうかを設定します。テキストが垂直に積み重ねられている場合、テキストの回転角度の設定は無視されます。
function Sample() {
// 範囲D4とB2:D4内のすべてのセルを縦に積み上げたテキストに設定します。
var sheet = SpreadsheetApp.getActiveSheet();
var rangeList = sheet.getRangeList(['D4', 'B2:C4']);
rangeList.setVerticalText(true);
}
名前 | タイプ | 説明 |
---|---|---|
isVertical | Boolean | テキストを重ねるかどうか。 |
Return
RangeList - 連鎖用のセル範囲リスト。
セル範囲リストクラス[RangeList]のテキスト回転取得
セル範囲リストのテキスト回転取得メソッドです。
テキスト方向と角度取得[getDegrees()]
getDegrees()
標準のテキストの向きと現在のテキストの向きの間の角度を取得します。左から右へのテキストの場合、正の角度は反時計回りの方向です。テキストが垂直方向に重なるように設定されている場合、このメソッドは0を返します。
Return
Integer - 標準のテキスト回転と現在のテキスト回転の間の角度。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class TextRotation | Methods | getDegrees()
テキスト垂直方向確認[isVertical()]
isVertical()
テキストが垂直方向に積み上げられている場合はtrueを返します。それ以外の場合はfalseを返します。
Return
Boolean - テキストが縦に積み上げられているかどうかを示します。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class TextRotation | Methods | isVertical()
最後に
GASテキスト回転機能のまとめをご紹介させていただきました。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓
ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
コメント