GAS PR

[GAS]シートの行の高さや列の幅を取得・設定する方法 -Sheetクラス-

記事内に商品プロモーションを含む場合があります

Google Apps Script (GAS) でこのシートの行の高さや列の幅を取得したり設定する方法を説明します。

Sheetクラスのメソッドを利用した手順について説明します。

SpreadSheetクラスでアクティブなシートに対して実施する方法については、下記をご覧ください。

Google Apps Scriptの基本的な使い方については下記をご覧ください。

GASによるスプレッドシート操作の概要

GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。

クラス説明
SpreadSheetAppSpreadSheetサービスの親クラス
Spreadsheetスプレッドシートを操作するクラス
Sheetシートを操作するクラス
Rangeセル範囲を操作するクラス

それぞれ下記のような位置付けになります。

「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。

このページでは、上記の中のSheetクラスの下記のメソッドについて説明します。

メソッド戻り値説明
getRowHeight(rowPosition)Integerこのシートの指定した行の高さを取得する
setRowHeight(rowPosition, height)Sheetこのシートの指定した行の高さを設定する
setRowHeights(startRow, numRows, height)Sheetこのシートの指定した行から指定した行数の高さを設定する
setRowHeightsForced(startRow, numRows, height)Sheetこのシートの指定した行から指定した行数の高さを強制的に設定する
autoResizeRows(startRow, numRows)Sheetこのシートの指定した行から指定した行数の高さを自動調整する
getColumnWidth(columnPosition)Integerこのシートの指定した列の幅を取得する
setColumnWidth(columnPosition, width)Sheetこのシートの指定した列の幅を設定する
setColumnWidths(startColumn, numColumns, width)Sheetこのシートの指定した列から指定した列数の幅を設定する
autoResizeColumn(columnPosition)Sheetこのシートの指定した列の幅を自動調整する
autoResizeColumns(startColumn, numColumns)Sheetこのシートの指定した列から指定した列数の幅を自動調整する

このシートの行の高さを取得・設定する

このシートの行の高さを取得したり、設定するメソッドを説明します。

このシートの指定した行の高さを取得する:getRowHeight(rowPosition)

このシートの指定した行の高さをピクセル単位で取得する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。3行目は、46ピクセルの高さということになります。

このシートの指定した行の高さを設定する:setRowHeight(rowPosition, height)

このシートの指定した行の高さをピクセル単位で設定する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した3行目が、100ピクセルの高さになります。

このシートの指定した行から指定した行数の高さを設定する:setRowHeights(startRow, numRows, height)

このシートの指定した行から指定した行数分、行の高さをピクセル単位で設定する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した3行目から2行分が、100ピクセルの高さになります。

このシートの指定した行から指定した行数の高さを強制的に設定する:setRowHeightsForced(startRow, numRows, height)

このシートの指定した行から指定した行数分、行の高さをピクセル単位で強制的に設定する方法です。

setRowHeightメソッドやsetRowHeightsメソッドでは入力内容に合わせて行の高さが拡大されるため、入力内容より高さを小さくすることはできません。
入力内容より高さを小さくするためには、setRowHeightsForcedメソッドを利用します。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した3行目から2行分が、15ピクセルの高さになります。

なお、同じことをsetRowHeightsメソッドで実施すると下記のように、入力内容より小さくできないため、15ピクセルにはなりません。

このシートの指定した行から指定した行数の高さを自動調整する:autoResizeRows(startRow, numRows)

このシートの指定した行から指定した行数分、入力されている内容に合わせ行の高さを自動調整する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した3行目から2行分が、入力されている内容に合わせて自動調整された高さになります。

このシートの列の幅を取得・設定する

このシートの列の幅を取得したり、設定するメソッドを説明します。

このシートの指定した列の幅を取得する:getColumnWidth(columnPosition)

このシートの指定した列の幅をピクセル単位で取得する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。3列目は、100ピクセルの幅ということになります。

このシートの指定した列の幅を設定する:setColumnWidth(columnPosition, width)

このシートの指定した列の幅をピクセル単位で設定する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した3列目が、200ピクセルの幅になります。

このシートの指定した列から指定した列数の幅を設定する:setColumnWidths(startColumn, numColumns, width)

このシートの指定した列から指定して列数分、列の幅をピクセル単位で設定する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した3列目から2列分が、200ピクセルの幅になります。

このシートの指定した列の幅を自動調整する:autoResizeColumn(columnPosition)

このシートの指定した列の幅を、入力された値に合わせ自動調整する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。入力された値に全然合っていません。

スプレッドシートの列幅の自動調整は不完全で、特に日本語が入っているとうまく動作しないようです。

試しにアルファベットのみで実行してみると下記になります。左右の余白が少し大きいです。

スプレッドシート側で列の右側をダブルクリックして列幅を自動調整すると下記になりますので、少しズレがあります。

次に数字で試してみると、autoResizeColumnメソッドでは下記になります。これもズレています。

スプレッドシート側で列の右側をダブルクリックして列幅を自動調整すると下記になります。スプレッドシート側で操作してもズレています。スプレッドシート側で操作しても、数字の組み合わせによってはズレる場合があるようです。

autoResizeColumnメソッドを利用する場合は、よく動作確認してから利用することをおすすめします。

このシートの指定した列から指定した列数の幅を自動調整する:autoResizeColumns(startColumn, numColumns)

このシートの指定した列から指定した列数分、入力された値に合わせ列の幅を自動調整する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。autoResizeColumnメソッドと同じく、入力された値に全然合っていません。

autoResizeColumnメソッドと同じく、autoResizeColumnsメソッドを利用する場合は、よく動作確認してから利用することをおすすめします。

まとめ

Google Apps Script (GAS) でこのシートの行の高さや列の幅を取得したり設定する方法を説明しました。

GASは無料で利用できてとても便利なツールです。

Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます

GASの基本構文を知りたい方は、下記もご覧ください。