※本記事はプロモーションを含みます
目次
取り込み直後に見切れを直す
Google Apps Script (GAS) を利用すると、セルから文字がはみ出す問題を自動で解決できます。なぜなら、データ量に応じて列幅を広げる処理を実行できるからです。ただし、手作業で調整するのは手間がかかります。なので、GASを組み込んで自動化します。というのは、視認性を高めて作業効率を上げるためです。作業を進める前に、以下の点を使い分けましょう。
- 視認性の即座な向上:長文のテキストや桁数の多い数値など、データがセルから見切れるのを防ぎ、内容を一目で把握できるようにします。
- 業務の完全自動化:外部システム(CSVインポート、API連携など)から大量のテキストデータを取り込んだ直後に、フォーマット整形バッチの一部として組み込むことで、手作業による調整をゼロにできます。
- レポートの品質担保:チームメンバーやクライアントに共有する際、常に整った美しいスプレッドシートを自動的に提供できます。
A列だけ伸ばす
まず、A列の幅を自動で調整するスクリプトを記述します。なぜなら、特定の1列だけを伸ばす命令が一番単純だからです。コードをスクリプトエディタに入力して実行しましょう。
const sheet = SpreadsheetApp.getActiveSheet();
sheet.autoResizeColumn(1);
上記の記述は2行で完了します。ただし、それぞれの行が別の役割を持ちます。なので、処理内容を正しく把握しましょう。内容は以下の通りです。
| コード | 解説 |
|---|---|
const sheet = SpreadsheetApp.getActiveSheet(); |
スプレッドシートの中で、現在アクティブになっている(開いている)シートを取得し、変数sheetに格納します。特定のシート名で取得したい場合は、getSheetByName('シート名')を使用することも可能です。 |
sheet.autoResizeColumn(1); |
対象シートの指定した列(この場合は1列目=A列)に対して、列幅の自動調整を実行します。引数の数字を変えることで対象列を変更できます(B列なら2、C列なら3)。 |
A〜Cを備考列は固定幅の方が見やすくて伸ばす
複数の列を調整したい場合は、autoResizeColumns(開始列, 列数)という指定方法(メソッド)を使用します。なぜなら、1列ずつ指定するより効率が良いからです。なので、まとまった範囲を一度に変更しましょう。というのは、実務のデータが複数列に及ぶからです。
例えば、1列目から3列分を調整したい場合は、次のコードを書き込みます。
const sheet = SpreadsheetApp.getActiveSheet();
// 1列目(A列)から始まり、3列分(A, B, C列)の幅を自動調整する
sheet.autoResizeColumns(1, 3);
設定する数値の意味は以下の通りです。正しく把握して指定しましょう。
- 第1引数(開始列):調整をスタートする列を数値で指定します。1ならA列、4ならD列です。
- 第2引数(列数):開始列から数えて、何列分の幅を調整するかを指定します。
応用:データが入力されている全列を自動調整する
最終列の場所が毎回変わる場面では、getLastColumn()を指定方法(メソッド)として組み合わせます。なぜなら、データが存在する列の数をプログラムが自動で数えてくれるからです。なので、動的なデータ調整が可能になります。というのは、列数が変動してもエラーを防げるからです。
const sheet = SpreadsheetApp.getActiveSheet();
const lastCol = sheet.getLastColumn();
if (lastCol > 0) {
sheet.autoResizeColumns(1, lastCol);
}
上記のように記述すると、プログラムが自動で列数を判断します。なので、データの増減に対応する処理を作成できます。処理内容をしっかり確認しましょう。
一番長い文字に合わせる
GASのautoResizeColumnは、セル内の「最も長いテキスト」に列幅を合わせます。なぜなら、画面上で文字が切れるのを防ぐ命令だからです。ただし、意図しない長さに広がる場合もあります。なので、データの特性に注意しましょう。というのは、たった1行の長文でも列全体が伸びるからです。
文字数がどれだけ多くても、セル全体の表示領域は確保されます。ただし、空白が多い表でも列幅が大きくなります。なので、見た目を確認しましょう。というのは、長い文字列が1つでも入ると、その長さに合わせる仕様だからです。
データを出力した直後に幅を広げる処理を入れると、画面が見やすくなります。なぜなら、手作業で幅を調整する手間が省けるからです。なので、プログラムの最後に配置しましょう。使い勝手を向上させる工夫として設定しましょう。
書いた直後に幅を合わせる
ここでは、データをシートへ入力した直後に列幅を整えるプログラムを紹介します。なぜなら、実際の業務では書き込みと整列を同時に行うからです。なので、以下のコードを参考にしてください。というのは、処理をまとめた方が効率的だからです。
function importDataAndFormat() {
const sheet = SpreadsheetApp.getActiveSheet();
// 外部からのデータ取り込みを想定したダミーデータ
const data = [
["ユーザーID", "氏名", "メールアドレス(非常に長いものを含む)"],
[101, "山田 太郎", "yamada.taro.super.long.email.address@example.com"],
[102, "鈴木 一郎", "suzuki@example.com"]
];
// データの書き込み(1行目・1列目から、データ行数・列数分)
sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
// データ入力後に、データが存在する全列の幅を自動調整
sheet.autoResizeColumns(1, data[0].length);
}
コードを実行すると、最も長いメールアドレスに合わせてC列が広がります。なぜなら、書き込み直後にautoResizeColumnsが働くからです。なので、文字が見切れる心配はありません。処理の流れを確認しましょう。
数万行だと時間を食う
大変便利な機能ですが、注意点が存在します。なぜなら、データ量や文字数によって処理時間が伸びるからです。なので、以下の2点を確認しましょう。というのは、不具合の原因になるからです。
1. 大量データ時の処理時間の増大(タイムアウト)
数万行を超えるデータで自動調整を実行すると、計算に時間がかかります。なぜなら、全行のセルから「最も長いテキスト」をプログラムが探すからです。ただし、制限時間を超えるとエラーが発生します。なので、処理対象を絞り込みましょう。というのは、GASに6分という実行時間制限があるからです。
データが数千行を超える場合は、重要な列だけに幅調整を実行しましょう。なぜなら、全列の調整は負荷が大きいからです。なので、必要な列だけを指定しましょう。実行時の負荷を抑える設計を心がけましょう。
2. 意図せず極端に広い列幅になるリスク
1つのセルに極端な長文が入っていると、列幅が画面外まで広がります。なぜなら、最大文字数に合わせて列を広げるからです。ただし、横スクロールが長くなると作業しづらくなります。なので、長文が入る列は除外しましょう。というのは、逆に視認性が落ちるからです。
備考欄のような長文列は、自動調整から外しましょう。なぜなら、画面崩れを防げるからです。なので、setColumnWidth(列番号, ピクセル数)で固定幅を指定します。そして、折り返し設定であるsetWrap(true)を組み合わせましょう。
備考列は固定幅の方が見やすい
GASを使ってスプレッドシートの列幅を整える方法を解説しました。なぜなら、見切れを直すと作業効率が上がるからです。ただし、長文や大量のデータには注意が必要です。なので、調整する列を絞り込みましょう。というのは、適切な固定幅の指定が役立つからです。
機能の特性を理解して、適切な範囲に処理を適用しましょう。なぜなら、誤った使い方をするとレイアウトが崩れるからです。ただし、工夫次第でキレイなシートを作成できます。なので、設定を見直しましょう。なお、無料枠や利用容量の表示は公式サイトでの表記が優先されます。

