RowHeightプロパティ

行の高さの取得や設定にはRowHeightプロパティを利用します。

行の高さの取得を複数行をまとめて取得する場合、各行の高さが全て同じであれば取得できますが、行ごとに高さが異なる場合は取得できません。その場合は1行ごとに取得する必要があります。

行の高さの設定は1度にまとめて複数の行に対して同じ高さを設定することが可能です。

構文

Rangeオブジェクトにはセル範囲を設定します。Range(“2:3”)のように行全体を選択することも出来ますが、Range(“A1”)のようにセルを指定しても1行目に対して行の高さの取得や設定を行うことが可能です。

取得および設定する際の値の単位はポイントになります。1ポイントは1/72インチで約0.35ミリです。100ポイントであれば3.5cmになります。

基本的な設定と取得のサンプルコード

複数行の高さを1度に取得しようとしても、行ごとに高さが異なるため取得できない仕様になっており、取得した値はNullになります。

5行目から10行目は同じ高さの複数行を取得し、それ以降は異なる高さの行を複数行取得しています。

前者は同じ高さのためRowHeightプロパティで取得できますが、後者は異なる高さのため取得できず基本的にはNullが返ります。例外として、未保存のBook1などのブックの場合でFomulaArrayプロパティやTextプロパティが””になっているはNullではなく選択範囲の一番上の行の高さが返ります。

実行結果
30
Null

複数行の取得のサンプルコード

複数行の高さを取得する場合は各行の高さが同じとは限らないため、1行ずつ取得および設定することになります。

以下は1行目から5行目の高さを行ごとに取得および設定をするサンプルコードです。

注意点として、行全体を表すにはRowsプロパティを利用する必要があります。

もしループ処理で、For Each r in Selection などと書くと、1行目から5行目の全セルをループすることになり、A1、B1、C1、、、XFD1、A2、、、XFD2、、、と時間が掛かることになるため注意しましょう。Rowsプロパティを使えばループ回数は行数と同じで済みます。

 

Rangeオブジェクトの書き方

RowHeightプロパティはRangeオブジェクトを指定する必要があります。

Rangeオブジェクトにはいろいろな書き方が可能なため、場面ごとに書き方を変える必要が出てきます。

以下のようにRangeオブジェクトの書き方にはいくつもありますので、状況に応じて使い分けましょう。