Google apps scriptでスプレッドシートの列幅をセルの値に合わせて変更する

Google apps scriptでスプレッドシートの列幅をセルの値に合わせて変更するには

  • autoResizeColumn(columnPosition)

を使う。

・autoResizeColumn(columnPosition)
指定された列の幅を内容に合わせて設定します。

パラメーター

タイプ 説明
columnPosition Integer 指定された列のサイズ変更の位置

参照:sheet?hl=ja#autoResizeColumn(Integer)

Google apps scriptでスプレッドシートの列幅をセルの値に合わせて変更する

セルに記入されている値に合わせて列幅を変更する。

A・C・E列にテキストを記入してautoResizeColumnで列幅を変更した。

/*スプレッドシートの列幅をセルの値に合わせて変更する*/
function retuhaba() {

//スプレッドシートAppを呼び出し
 var ss = SpreadsheetApp.getActiveSpreadsheet();
//アクティブなシートを取得
 var sht = ss.getActiveSheet();

//A1にテキストを入力
 sht.getRange('a1').setValue('aaaaaaaaaaaaaaaaaaa');
//C1にテキストを入力
 sht.getRange('C1').setValue('日本語だとリサイズされないんですね');
//E5にテキストを入力
 sht.getRange('E5').setValue('e5e5e5e5e5e5e5');
 
//1列目(A列目)に合わせて列幅を変更する
 sht.autoResizeColumn(1);
//3列目(C列目)に合わせて列幅を変更する
 sht.autoResizeColumn(3);
//5列目(E列目)に合わせて列幅を変更する
 sht.autoResizeColumn(5);

}

Google apps scriptでスプレッドシートの列幅をセルの値に合わせて変更するsample

 

まとめ

セル範囲.autoResizeColumn(幅変更列)で自動変更出来る。

日本語だとなぜか上手く自動リサイズされない。

入力されたテキストの3/5くらいの幅が変更される。

半角英数字だと自動リサイズされた。これは多分Google apps scriptのエラーなんだと思う。

>>スプレッドシートの列幅を指定する

>>スプレッドシートの行幅を指定する

>>スプレッドシートの最大列を取得する