💡この記事でわかること
- autoResizeRows/autoResizeColumns関数を使ってセルの幅を変更する方法
- autoResizeColumns関数を使うときの注意点
autoResizeRows/autoResizeColumns関数
行の高さを調整する autoResizeRows(startRow, numRows)
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
// 2行目から3行分、セルの高さを調整する
sheet.autoResizeRows(2, 3)
実行前
実行後
公式ドキュメント
引数
名前 | 型 | 説明 |
---|---|---|
startRow | Integer | サイズ変更を開始する行の番号 |
numRows | Integer | サイズ変更の対象とする行数 |
戻り値
Sheetオブジェクト
列の幅を調整する autoResizeColumns(startColumn, numColumns)
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
// 1列目から2列分、セルの幅を調整する
sheet.autoResizeColumns(1, 2)
実行前
実行後
公式ドキュメント
引数
名前 | 型 | 説明 |
---|---|---|
startColumn | Integer | サイズ変更を開始する列の番号 |
numColumns | Integer | サイズ変更の対象とする列数 |
戻り値
Sheetオブジェクト
autoResizeColumnsを使うときの注意点
autoResizeColumnsには執筆時点では、セルに日本語など全角文字が含まれる場合、正しく幅が調整されない問題があります
意図しない結果になるパターン
次のような場合、B列の右あたりまでA列の幅を広がるというのがautoResizeColumns実行後の期待する結果だと思います。
実行前
では、実行後を見てみましょう。
実行後
幅が広がることなく、むしろ少し縮まっているように見えます。
このようにautoResizeColumnsには、日本語など全角文字が含まれる場合、正しく幅が調整されない問題があります
普通に使っていれば全角文字は含まれないことはないので、この仕様は厳しい!
この挙動は現在多くのユーザから課題として挙げられており、修正すべきバグとして認識されているようです。しかしながら修正・対応までは長い時間がかかることもあるため、しばらくは全角文字が含まれる場合の挙動に気を付けながら使うことになりそうです。
代替案
GASではないのですが、列を選択してダブルクリックで列の幅を一括で調整することができます。スプレッドシートでの効率的な操作例として覚えておくと便利です。
まとめ
以上、GASを使ってセルの幅を内容に合わせて変更する方法でした。
最後まで読んでいただきありがとうございました!
GASをイチから学びたい方へ
このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。
すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。
リンク
GASを使ってセルの幅を内容に合わせて変更する方法をご紹介します