スプレッドシートの列の幅をGASで自動調整する方法(autoResizeColumn)

スプレッドシートでは、セルに入力した文字数が多い場合、当該列部分をダブルクリックし、広げる操作を行います。

実は入力文字数に応じた列幅の自動調整はGoogle Apps Script(GAS)でも可能なので、列の幅を自動的に揃える方法を解説します。

スプレッドシートでよく使う列幅の調整

スプレッドシートに数値以外にテキスト情報を入力するシーンは多いです。

ちょっとした文章を入力すると、すぐにデフォルトのセル幅に収まりきらなくなります。

そうした場合に、スプレッドシートの列のセル幅の自動調整を実施します。

スプレッドシートの画面で、幅を調整したい列の右端部分をダブルクリックします。

すると、当該列に入力されているテキスト量に応じて、列の幅を自動的に拡張・縮小してくれます。

列幅の自動調整をすることで、列に入力した文字が全部見えるようになり、視認性を高めることが可能です。

GASでもシートの列の幅を自動調整可能

スプレッドシートのシートにおける列幅の自動調整は、GUI操作以外に、Google Apps Script(GAS)でも実行できます。

GASで列幅の自動調整を行えば、スクリプトによるスプレッドシートの自動処理に便利です。

GASスクリプトで、データを取得し、スプレッドシートに出力してレポートを作成する際、そのままだと、見づらいレポートになります。

しかし、GASスクリプトでセルに出力したテキストに応じて、列の幅を自動的に拡大・縮小する処理を追加すれば、見やすいレポートの自動生成が可能です。

人間が手動で列幅を変更して見栄えを整える必要がなくなります。

文字数に応じ列幅を広げるautoResizeColumn(s)

Google Apps Script(GAS)でスプレッドシートの列の幅を入力要素に応じて、自動調整するのは、autoResizeColumn(s)メソッドです。

sheet.autoResizeColumn('列番号’)

sheet.autoResizeColumns('開始列’,’列数’)

autoResizeColumn(s)メソッドはいずれもsheetオブジェクトで実行します。

autoResizeColumnは、列幅を調整したい列番号の数字を引数に指定します。

例えば、C列の列の幅を自動調整する場合は、sheet.autoResizeColumn(3)と書きます。

autoResizeColumnsは、列幅を調整する開始列と、列数の2つの引数を指定します。

sheet.autoResizeColumns(3,3)を実行すると、C列から3列分(C~E列まで)の列の幅が自動調整されます。

調整が必要な列が一列の場合は、複数列が対象の場合はと使い分けます。

GASで列幅の自動調整を行うサンプルコード

実際にGoogle Apps Script(GAS)でスプレッドシートの列幅を自動調整するサンプルコードで解説します。

列幅の自動調整をGASスクリプトで実行するために、下のようなスプレッドシートを用意しました。

列幅を未調整のスプレッドシートは一部文字がはみ出てたり、逆にスペースが余る列も

よみがなのところはデフォルトの列幅よりも長くなっており、数値入力部分は、空白が多い状態です。

このスプレッドシートでautoResizeColumn(s)メソッドを使って列の幅を自動で拡大・縮小します。

Google Apps Script(GAS)でスプレッドシートの列幅を入力文字数に応じて自動調整してくれるautoResizeColumn(s)メソッドを使ったサンプルコード
function autoSetColumnWidth() {
  //スクリプトに紐づくスプレッドシートのアクティブなシートを取得
  let mySheet = SpreadsheetApp.getActiveSheet();
  //シートの1列(A列)の幅を自動調整
  mySheet.autoResizeColumn(1);
  //シートの3列目(C列)から4列分(F列まで)の幅を自動調整
  mySheet.autoResizeColumns(3,4);
}

まず、スプレッドシートの中からアクティブなシートを取得します。

autoResizeColumnメソッドでシートの1列目(A列)の幅を調整します。

そのあと、autoResizeColumnsメソッドで3列目(C列)から4列分(F列まで)の複数列の幅を自動調整します。

GASサンプルコードを実行すると、スプレッドシートの列幅に変化が生じます。

Google Apps Script(GAS)のautoResizeColumn(s)メソッドのサンプルコードを実行した結果、列幅が自動調整

それぞれの列幅が縮小されたり、拡大されています。

先程はよみがなの列は全部見えていなかったですが、すべて見えるようになりました。

行の高さの場合はautoResizeRow(s)

なお、ここまではスプレッドシートの列幅の自動調整について取り上げてきました。

では列ではなく、行の高さを自動調整したい場合、どうすればよいでしょうか?

スプレッドシートの行の高さ自動調節するには、autoResizeRowsメソッドを使用します。

sheet.autoResizeRows()

使い方はautoResizeColumnsと同様に引数指定して、自動調整する行を設定します。

なお、スプレッドシートは行方向にデータを追加する利用シーンが多いため、1行のみ実行するメソッドは用意されていません。

もし、1行だけ高さ調整する場合は、autoResizeRowsメソッドで第2引数に1を指定します。

スプレッドシートの行の高さが不必要に高い状態

上記のスプレッドシートに対し、下記のGASサンプルコードを実行してみます。

Google Apps Script(GAS)でスプレッドシートの行の高さを自動調整してくれるautoResizeRow(s)メソッドを使ったサンプルコード
function autoSetRowHeight() {
  //スクリプトに紐づくスプレッドシートのアクティブなシートを取得
  let mySheet = SpreadsheetApp.getActiveSheet();
  //シートの2行目から5行分(6行目まで)の幅を自動調整
  mySheet.autoResizeRows(2,5);
}

GASサンプルコード実行後、スプレッドシートの行の高さが変化します。

Google Apps Script(GAS)でスプレッドシートの行の高さを自動調整してくれるautoResizeRow(s)メソッドを実行したスプレッドシート

autoResizeRowsメソッドで指定した2行目から6行目までは行の高さが小さくなりましたが、対象外の7行目はそのままです。

このように、行の高さもGASで自動調整することができます。

まとめ・終わりに

今回、Google Apps Script(GAS)でスプレッドシートの列幅を自動調整する方法を紹介しました。

GASに用意されているautoResizeColumn(s)メソッドを使うことで、セルに入力されたテキスト量に応じた列幅に自動調整が可能です。

さらに、行方向の高さを調整したい場合は、autoResizeRowsメソッドを使用します。

列幅の自動調整をGASスクリプトの処理に加えれば、データの出力に加え、見栄えの調整も自動化可能です。

スプレッドシートを使った業務のさらなる自動化に、列幅の自動調整を活用しましょう。