スプレッドシートの列の幅を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)メソッドを使って列の幅を自動で拡大・縮小します。
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サンプルコードを実行すると、スプレッドシートの列幅に変化が生じます。
それぞれの列幅が縮小されたり、拡大されています。
先程はよみがなの列は全部見えていなかったですが、すべて見えるようになりました。
行の高さの場合はautoResizeRow(s)
なお、ここまではスプレッドシートの列幅の自動調整について取り上げてきました。
では列ではなく、行の高さを自動調整したい場合、どうすればよいでしょうか?
スプレッドシートの行の高さを自動調節するには、autoResizeRowsメソッドを使用します。
sheet.autoResizeRows()
使い方はautoResizeColumnsと同様に引数指定して、自動調整する行を設定します。
なお、スプレッドシートは行方向にデータを追加する利用シーンが多いため、1行のみ実行するメソッドは用意されていません。
もし、1行だけ高さ調整する場合は、autoResizeRowsメソッドで第2引数に1を指定します。
上記のスプレッドシートに対し、下記のGASサンプルコードを実行してみます。
function autoSetRowHeight() {
//スクリプトに紐づくスプレッドシートのアクティブなシートを取得
let mySheet = SpreadsheetApp.getActiveSheet();
//シートの2行目から5行分(6行目まで)の幅を自動調整
mySheet.autoResizeRows(2,5);
}
GASサンプルコード実行後、スプレッドシートの行の高さが変化します。
autoResizeRowsメソッドで指定した2行目から6行目までは行の高さが小さくなりましたが、対象外の7行目はそのままです。
このように、行の高さもGASで自動調整することができます。
まとめ・終わりに
今回、Google Apps Script(GAS)でスプレッドシートの列幅を自動調整する方法を紹介しました。
GASに用意されているautoResizeColumn(s)メソッドを使うことで、セルに入力されたテキスト量に応じた列幅に自動調整が可能です。
さらに、行方向の高さを調整したい場合は、autoResizeRowsメソッドを使用します。
列幅の自動調整をGASスクリプトの処理に加えれば、データの出力に加え、見栄えの調整も自動化可能です。
スプレッドシートを使った業務のさらなる自動化に、列幅の自動調整を活用しましょう。
ディスカッション
コメント一覧
まだ、コメントがありません