Google Apps Script (GAS) でこのセル範囲のセルのテキストの回転角度や方向を取得・設定する方法を説明します。
Rangeクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
- GASによるスプレッドシート操作の概要
- このセル範囲のセルのテキストの回転設定を取得・設定する
- このセル範囲の左上のセルのテキストの回転設定を取得する:getTextRotation()
- このセル範囲のセルのテキストの回転設定を配列で一括取得する:getTextRotations()
- このセル範囲のセルのテキストの回転設定の角度を一括設定する:setTextRotation(degrees)
- このセル範囲のセルのテキストの回転設定を一括設定する:setTextRotation(rotation)
- このセル範囲のセルのテキストの回転設定を配列で一括設定する:setTextRotations(rotations)
- このセル範囲のセルのテキストの縦書き設定を設定する:setVerticalText(isVertical)
- このセル範囲のセルのテキストの方向を取得・設定する
- まとめ
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のRangeクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
getTextRotation() | TextRotation | このセル範囲の左上のセルのテキストの回転設定を取得する |
getTextRotations() | TextRotation[][] | このセル範囲のセルのテキストの回転設定を配列で一括取得する |
setTextRotation(degrees) | Range | このセル範囲のセルのテキストの回転設定の角度を一括設定する |
setTextRotation(rotation) | Range | このセル範囲のセルのテキストの回転設定を一括設定する |
setTextRotations(rotations) | String | このセル範囲のセルのテキストの回転設定を配列で一括設定する |
setVerticalText(isVertical) | Range | このセル範囲のセルのテキストの縦書き設定を設定する |
getTextDirection() | TextDirection | このセル範囲の左上のセルのテキストの方向を取得する |
getTextDirections() | TextDirection[][] | このセル範囲のセルのテキストの方向を配列で一括取得する |
setTextDirection(direction) | Range | このセル範囲のセルのテキストの方向を一括設定する |
setTextDirections(directions) | Range | このセル範囲のセルのテキストの方向を配列で一括設定する |
このセル範囲のセルのテキストの回転設定を取得・設定する
このセル範囲のセルのテキストの回転設定を取得・設定するメソッドを説明します。
このセル範囲の左上のセルのテキストの回転設定を取得する:getTextRotation()
このセル範囲の左上のセルのテキストの回転設定を取得する方法です。
戻り値は、TextRotationクラスです。
TextRotationクラスには、getDegreesメソッドと、isVerticalメソッドがあり、それぞれ回転角度と縦書きかどうかを取得できます。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); console.log(testRange.getTextRotation().getDegrees()); } |
下記のような実行結果になります。左上セルのテキストの回転設定を取得できます。
1 |
45 |
このセル範囲のセルのテキストの回転設定を配列で一括取得する:getTextRotations()
このセル範囲のセルのテキストの回転設定を配列で一括取得する方法です。
戻り値は、TextRotationクラスです。
TextRotationクラスには、getDegreesメソッドと、isVerticalメソッドがあり、それぞれ回転角度と縦書きかどうかを取得できます。
下記のように実行します。
1 2 3 4 5 6 7 8 9 10 11 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); const testTextRotations = testRange.getTextRotations(); for (const rows of testTextRotations) { for (const cell of rows) { console.log(cell.getDegrees()); } } } |
下記のような実行結果になります。セルのテキストの回転設定を配列で取得できます。
1 2 3 4 |
45 0 0 -90 |
このセル範囲のセルのテキストの回転設定の角度を一括設定する:setTextRotation(degrees)
このセル範囲のセルのテキストの回転設定を角度で一括設定する方法です。
引数は角度で指定します。角度がプラスの場合は反時計回りの方向、マイナスの場合は時計回りの方向に回転します。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setTextRotation(45); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルのテキストの回転設定を指定した値で一括設定できます。
このセル範囲のセルのテキストの回転設定を一括設定する:setTextRotation(rotation)
このセル範囲のセルのテキストの回転設定を一括設定する方法です。
引数はTextRotationクラスで指定します。
下記のように実行します。
1 2 3 4 5 6 7 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); const rotation = testSheet.getRange("E5").getTextRotation(); testRange.setTextRotation(rotation); } |
下記のファイルで実行してみます。
下記のような実行結果になります。E5セルの回転設定をB2:C3セルに一括設定できます。
このセル範囲のセルのテキストの回転設定を配列で一括設定する:setTextRotations(rotations)
このセル範囲のセルのテキストの回転設定を配列で一括設定する方法です。
引数はTextRotationクラスで指定します。
下記のように実行します。
1 2 3 4 5 6 7 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); const rotation = testSheet.getRange("E5").getTextRotation(); testRange.setTextRotation(rotation); } |
下記のファイルで実行してみます。
下記のような実行結果になります。D4:E5セルの回転設定をB2:C3セルに一括設定できます。
このセル範囲のセルのテキストの縦書き設定を設定する:setVerticalText(isVertical)
このセル範囲のセルのテキストの縦書き設定を一括設定する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setVerticalText(true); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルのテキストを縦書きに一括設定できます。
テキストの縦書き設定を取得したい場合は、getTextRotationメソッドやgetTextRotationsメソッドの戻り値TextRotationクラスのisVerticalメソッドで取得できます。
このセル範囲のセルのテキストの方向を取得・設定する
このセル範囲のセルのテキストの方向を取得・設定するメソッドを説明します。
テキストの方向とは、スプレッドシートの「表示形式」→「方向」の下記の設定のことです。
上記のメニューが表示されない場合は、下記の「設定」で、「右から左への言語オプションを常に表示する」にチェックを入れてください。
この設定ですが、メニューから実施してもGASから実施しても確認した限りでは想定通りではありませんでした。
“ABCDEF”と入力したセルでそれぞれの設定を見比べると、「右から左へ」に設定した方は”FEDCBA”となる想定でしたが、実際は右寄せにはなっていますが左から右”ABCDEF”へ並んだままです。
入力モードの状態でも、一番左にカーソルが表示されますが、表示は左から右のままです。
ただし、テキストを縦書きにした場合では、下記のように正しく右から左になっています。
自分の想定が間違っているのか、不具合なのかはわかりませんが、上記の動作になるため、よく検証して利用することをおすすめします。
このセル範囲の左上のセルのテキストの方向を取得する:getTextDirection()
このセル範囲の左上のセルのテキストの方向を取得する方法です。
左から右(デフォルト)の場合はLEFT_TO_RIGHT、右から左の場合はRIGHT_TO_LEFTを返します。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); console.log(testRange.getTextDirection().toString()); } |
下記のような実行結果になります。左上セルのテキストの回転設定を取得できます。
1 |
LEFT_TO_RIGHT |
このセル範囲のセルのテキストの方向を配列で一括取得する:getTextDirections()
このセル範囲のセルのテキストの方向を配列で一括取得する方法です。
左から右(デフォルト)の場合はLEFT_TO_RIGHT、右から左の場合はRIGHT_TO_LEFTを返します。
下記のように実行します。
1 2 3 4 5 6 7 8 9 10 11 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); const testTextDirections = testRange.getTextDirections(); for (const rows of testTextDirections) { for (const cell of rows) { console.log(cell.toString()); } } } |
下記のような実行結果になります。セルのテキストの方向を配列で一括取得できます。
1 2 3 4 |
LEFT_TO_RIGHT RIGHT_TO_LEFT RIGHT_TO_LEFT LEFT_TO_RIGHT |
このセル範囲のセルのテキストの方向を一括設定する:setTextDirection(direction)
このセル範囲のセルのテキストの方向を一括設定する方法です。
引数には、下記のいずれかの設定を使用します。
設定 | テキストの方向 |
---|---|
SpreadsheetApp.TextDirection.LEFT_TO_RIGHT | 左から右へ(デフォルト) |
SpreadsheetApp.TextDirection.RIGHT_TO_LEFT | 右から左へ |
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setTextDirection(SpreadsheetApp.TextDirection.RIGHT_TO_LEFT); } |
下記のファイルで実行してみます。変化がわかるよう縦書きにしています。
下記のような実行結果になります。セルのテキストの方向を指定した値で一括設定できます。
このセル範囲のセルのテキストの方向を配列で一括設定する:setTextDirections(directions)
このセル範囲のセルのテキストの方向を配列で一括設定する方法です。セル毎に異なる設定を指定したい場合は、このメソッドを利用します。
引数には、下記のいずれかの設定を使用します。
設定 | テキストの方向 |
---|---|
SpreadsheetApp.TextDirection.LEFT_TO_RIGHT | 左から右へ(デフォルト) |
SpreadsheetApp.TextDirection.RIGHT_TO_LEFT | 右から左へ |
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setTextDirections([[SpreadsheetApp.TextDirection.RIGHT_TO_LEFT, SpreadsheetApp.TextDirection.LEFT_TO_RIGHT], [SpreadsheetApp.TextDirection.LEFT_TO_RIGHT, SpreadsheetApp.TextDirection.RIGHT_TO_LEFT]]); } |
下記のファイルで実行してみます。変化がわかるよう縦書きにしています。
下記のような実行結果になります。セルのテキストの方向を指定した値で一括設定できます。
まとめ
Google Apps Script (GAS) でこのセル範囲のセルのテキストの回転角度や方向を取得・設定する方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。