【GAS】スプレッドシートのテキスト回転機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートのテキスト回転機能をすべてまとめました。

テキストをはみ出さず、セルにどうしてもスッポリ収めたい時、テキストを回転させてオシャレに表示することも可能になります。

角度を指定できたり、縦書きにしてみたり、自由に設定できるのでテキストの長さに併せて角度を変化させることもできます。

テキスト回転に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


スポンサーリンク

Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

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

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

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);
}
Parameters
名前タイプ説明
degreesInteger標準方向と目的の方向の間の目的の角度。左から右へのテキストの場合、正の角度は反時計回りの方向です。

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());
}
Parameters
名前タイプ説明
rotationsTextRotation[][]設定するテキスト回転設定。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setTextRotations(rotations)

テキスト縦書き設定[setVerticalText(垂直有無)]

setVerticalText(isVertical)
範囲内のセルのテキストを重ねるかどうかを設定します。テキストが垂直に積み重ねられている場合、テキストの回転角度の設定は無視されます。

function setVerticalTextSample() {
  // B2:D4の範囲内にあるすべてのセルを縦に積み上げたテキストに設定します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("B2:D4");

  range.setVerticalText(true);
}
Parameters
名前タイプ説明
isVerticalBooleanテキストを重ねるかどうか。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setVerticalText(isVertical)


セル範囲クラス[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);
}
Parameters
名前タイプ説明
degreesInteger標準方向と目的の方向の間の目的の角度。左から右へのテキストの場合、正の角度は反時計回りの方向です。

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | setTextRotation(degrees)

テキスト縦書き設定[setVerticalText(垂直有無)]

setVerticalText(isVertical)
範囲リスト内の各範囲のセルのテキストをスタックするかどうかを設定します。テキストが垂直に積み重ねられている場合、テキストの回転角度の設定は無視されます。

function Sample() {
  // 範囲D4とB2:D4内のすべてのセルを縦に積み上げたテキストに設定します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangeList = sheet.getRangeList(['D4', 'B2:C4']);
  rangeList.setVerticalText(true);
}
Parameters
名前タイプ説明
isVerticalBooleanテキストを重ねるかどうか。

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | setVerticalText(isVertical)


セル範囲リストクラス[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スプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

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




コメント

//▼2023/04/08追加 //https://lovagelab.com/posts/3406/ //▲2023/04/08追加