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

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

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

長いテキスト文字列をセルに設定する場合、折り返すか(WRAP)、はみ出すか(OVERFLOW)、切り詰めるか(CLIP)、迷いませんか?

GASを使えばテキストの内容で柔軟に設定可能になります。配列を使ってまとめて設定も可能です。

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


スポンサーリンク

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

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

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

 

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

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

 

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

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

 

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。

基本的な仕様やよく使われる機能の設定方法がまとまっています。

※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。


折り返し方法列挙型[WrapStrategy]

折り返しの方法です。

Enum WrapStrategy
セルテキストの折り返しを処理するために使用される戦略の列挙。

Properties
プロパティタイプ説明
WRAPEnumセル幅より長い行を新しい行に折り返します。 1行より長い単一単語は文字レベルで折り返されます。
OVERFLOWEnumそのセルが空である限り、次のセルに行をオーバーフローさせます。次のセルが空でない場合、これはCLIPと同じように動作します。
CLIPEnumセル幅より長いクリップライン。

参照:Google Apps Script | REFERENCE | SpreadSheet | Enum WrapStrategy


セル範囲クラス[Range]のテキスト折り返し設定

セル範囲のテキスト折り返し設定メソッドです。折り返しするかの判断または任意の折り返し方法による設定です。配列設定もあります。

テキスト折り返し設定[setWrap(折り返し有無)]

setWrap(isWrapEnabled)
与えられた範囲のセル折り返しを設定します。

折り返しを有効にしたセル(デフォルト)は、コンテンツ全体を表示するようにサイズ変更されます。折り返しを無効にしたセルは、サイズを変更したり、複数行にまたがったりせずに、できるだけセル内に表示されます。

function setWrapSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var cell = sheet.getRange("B2");
  cell.setWrap(true);
}
Parameters
名前タイプ説明
isWrapEnabledBooleanテキストを折り返すかどうか。

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

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setWrap(isWrapEnabled)

テキスト折り返し配列設定[setWraps(折り返し有無)]

setWraps(isWrapEnabled)
テキスト折り返し方法の2次元配列を設定します(この範囲のサイズと一致する必要があります)。折り返しを有効にしたセル(デフォルト)は、コンテンツ全体を表示するようにサイズ変更されます。折り返しを無効にしたセルは、サイズを変更したり、複数行にまたがったりせずに、できるだけセル内に表示されます。

function setWrapsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // 2次元配列のサイズは範囲のサイズと一致する必要があります。
  var wraps = [
    [ true, true, false ]
  ];

  var range = sheet.getRange("B2:D2");
  range.setWraps(wraps);
}
Parameters
名前タイプ説明
isWrapEnabledObject[][]セル内でテキストを折り返すかどうかを決定する折り返し変数の2次元配列。

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

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setWraps(isWrapEnabled)

テキスト折り返し設定[setWrapStrategy(折り返し方法)]

setWrapStrategy(strategy)
範囲内のセルにテキストの折り返し方法を設定します。

function setWrapStrategySample() {
  // 範囲B2:D4のすべてのセルをクリップラップストラテジーを使用するように設定します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("B2:D4");

  range.setWrapStrategy(SpreadsheetApp.WrapStrategy.CLIP);
}
Parameters
名前タイプ説明
strategyWrapStrategy設定する折り返し方法。

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

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setWrapStrategy(strategy)

テキスト折り返し配列設定[setWrapStrategies(折り返し方法's)]

setWrapStrategies(strategies)
折り返し方法の2次元配列を設定します。

function setWrapStrategiesSample() {
  // 範囲A1:B2から範囲C5:D6までのすべての折り返し方針をコピーします。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range1 = sheet.getRange("A1:B2");
  var range2 = sheet.getRange("C5:D6");

  range2.setWrapStrategies(range1.getWrapStrategies());
}
Parameters
名前タイプ説明
strategiesWrapStrategy[][]設定する折り返し方法。

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

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setWrapStrategies(strategies)




セル範囲クラス[Range]のテキスト折り返し取得

セル範囲のテキスト折り返し取得メソッドです。

テキスト折り返し有無取得[getWrap()]

getWrap()
範囲の左上隅にあるセルの折り返し方法を返します。テキストが折り返される場合はtrue、テキストが折り返されない場合はfalse

function getWrapSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange("B2:D4");

  Logger.log(range.getWrap());
}

Return
Boolean - このセルのテキストを折り返すかどうかを示します。

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

テキスト折り返し有無配列取得[getWraps()]

getWraps()
範囲内のセルの折り返し方法を返します。

function getWrapsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange("B2:D4");

  //var results = range.getVerticalAlignments();
  var results = range.getWraps();

  for (var i in results) {
    for (var j in results[i]) {
      var isWrapped = results[i][j];
      if (isWrapped) {
        Logger.log("Cell [%s, %s] has wrapped text", i, j);
      }
    }
  }
}

Return
Boolean[][] - 範囲内のセルに関連付けられたテキストの垂直方向の配置の2次元配列。

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

テキスト折り返し方法取得[getWrapStrategy()]

getWrapStrategy()
範囲の左上のセルに対するテキストの折り返し方法を返します。

function getWrapStrategySample() {
  // セルB1のテキストの折り返し戦略を取得します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("B1:D4");
  Logger.log(range.getWrapStrategy());
}

Return
WrapStrategy - 範囲内の左上隅のセルのテキスト折り返し戦略。

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

テキスト折り返し方法配列取得[getWrapStrategies()]

getWrapStrategies()
範囲内のセルのテキストの折り返し方法を返します。

function getWrapStrategySample() {
  // 範囲B5:C6のすべてのセルに対するテキストの折り返し方法を取得します
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("B5:C6");
  var strategies = range.getWrapStrategies();

  for (var i = 0; i < strategies.length; i++) {
    for (var j = 0; j < strategies[i].length; j++) {
      Logger.log(strategies[i][j]);
    }
  }
}

Return
WrapStrategy[][] - テキストの折り返し戦略の2次元配列。

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


セル範囲リストクラス[RangeList]のテキスト折り返し設定

セル範囲リストのテキスト折り返し設定メソッドです。折り返しするかの判断または任意の折り返し方法による設定です。

テキスト折り返し設定[setWrap(折り返し有無)]

setWrap(isWrapEnabled)
範囲リストの各範囲にテキストの折り返しを設定します。折り返しを有効にしたセルは、コンテンツ全体を表示するようにサイズ変更されます。折り返しを無効にしたセルは、サイズを変更したり、複数行にまたがったりせずに、できるだけセル内に表示されます。

function setWrapSample() {
  // 範囲リストのテキストの折り返しを有効にします。
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangeList = sheet.getRangeList(['D4', 'B2:C4']);
  rangeList.setWrap(true);
}
Parameters
名前タイプ説明
isWrapEnabledBooleanテキストを折り返すかどうか。

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

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | setWrap(isWrapEnabled)

テキスト折り返し設定[setWrapStrategy(折り返し方法)]

setWrapStrategy(strategy)
範囲リストの各範囲にテキストの折り返し方法を設定します。

function setWrapStrategySample() {
  // クリップラップストラテジーを使用する範囲のリストを設定します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangeList = sheet.getRangeList(['D4', 'B2:C4']);
  rangeList.setWrapStrategy(SpreadsheetApp.WrapStrategy.CLIP);
}
Parameters
名前タイプ説明
strategyWrapStrategy設定する折り返し方法。

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

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | setWrapStrategy(strategy)


最後に

GASテキスト折り返し機能のまとめをご紹介させていただきました。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

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

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




コメント

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