AREAS関数(エリアズ)のご紹介です。

指定した範囲に含まれる領域の個数を返します。連続したセル範囲、または 1 つのセルが領域とみなされます。
書式は、=AREAS(範囲)になります。
範囲は必ず指定します。セルまたはセル範囲の参照を指定します。
複数の領域に対する参照 (複数選択した範囲) を指定することもできます。
複数のセル参照を1つの引数として指定するときは、それぞれのセル参照を半角のコンマ(,)で区切り、全体を1組のかっこ()で囲む必要があります。
このようにすると、コンマが引数の区切り文字として解釈されなくなるんですね!

AREAS関数

例1:下記の表の領域がいくつあるか調べます。表が3つあり、3つの表を区切るので「)」を二重にします。


「A7」に、=AREAS((A1:B4,D1:E4,G1:H4))と入力します。
結果は「3」となりました。表の領域が3個あると言う事ですね。

表の領域と別の表の領域が半角スペースで区切られている場合は、重なりを返してくれます。
「B2:C6」の領域の中から「B4:D4」の領域は重なりはいくつの領域かを調べるときには半角酢スペースで区切ってください!

結果は、「1」箇所になりますね!

AREAS関数は、VBAでも使います。
セル領域の操作;複数のセル領域(Areasプロパティ)として利用できます。

シート上の複数のセル領域をVBAで扱う場合、それぞれの領域を取得するにはRangeオブジェクトのAreasプロパティを使用します。

たとえば、セルA1:D3、F7:G11、I12:K17のような複数のセル領域の行数を数えるとき、
MsgBox Range(“A1:D3,F7:G11,I12:K17”).Rows.Count
上のようにすると、メッセージボックスには「3」と表示されます。
これは1つ目のセルA1:D3の行数で、3つのセル領域の行の合計は得られません。

このような場合にはAreasプロパティを利用して、それぞれのセル領域(Rangeオブジェクト)について行数、列数を取得する必要があります。
次のサンプルは、3つのセル領域の行数・列数の合計をメッセージボックスに表示します。
Sub Sample()
Dim i As Long, cntRow As Long, cntCol As Long

Range(“A1:D3,F7:G11,I12:K17”).Select
With Selection
For i = 1 To .Areas.Count
cntRow = cntRow + .Areas(i).Rows.Count
cntCol = cntCol + .Areas(i).Columns.Count
Next i
End With

MsgBox “行 : ” & cntRow & vbCrLf & “列 : ” & cntCol
End Sub

●補足説明●
Areasコレクションには、選択範囲内のセル領域に対応するRangeオブジェクトが含まれます。
Areaオブジェクトというオブジェクトはありません。

Areasプロパティ
RangeオブジェクトのAreasプロパティは、複数の選択範囲にあるすべてのセル範囲を表すAreasコレクションを取得します。
RangeのAddress文字列の,カンマで区切られたそれぞれのセル範囲のRangeオブジェクトのコレクションになります。
Rangeオブジェクトの中に、複数のRangeオブジェクトが含まれている状態です。
単数形のAreaオブジェクトは存在しません。

Areasコレクションから単一のRangeオブジェクトを取得するのには、Areas (index)を使用します。
インデックス番号は、領域が選択された順序に対応します。

Rangeオブジェクトに含まれるAreasコレクションの要素数は、Areas.Countで取得できます。
Range(…).Countはセル数ですが、Areas.CountはArea(Rangeオブジェクト)の数になります。
1つのRangeオブジェクトには少なくとも1つのAreaが存在しますので、Areas.Countの最小値は1になります。

Range(“A1,A3:A5,A7”)
この場合は、
Areas.Countは3になり、
Areas(1)はRange(“A1”)、Areas(2)はRange(“A3:A5”)、Areas(3)はRange(“A7”)になります。

AREAS関数まとめ

areasとはareaの複数形。面積になります。
指定した範囲のなかに、セルやセル範囲の領域がいくつあるかを求めるときにAREAS関数を利用します。
領域とは連続したセル範囲、または1つのセルのことです。
1つの引数に、複数個のセルやセル範囲をまとめて指定したい場合は、()で囲んで指定します。
[参照]には複数の領域に付けた名前も指定できます。名前を利用すれば、引数にセル範囲を直接指定するより数式が簡潔になります。
たとえば、「商品一覧表」という名前を付けていれば、関数は「=AREAS(商品一覧表)」と入力できます。
先ほども解説しましたが、VBAでも使います。
VBAとは、Microsoftが提供するアプリケーションで使用できるプログラミング言語です。
ExcelやWordのファイルでよく使われているので、「マクロ」という形で触れたことがある人も多いと思います。
VBAはMicrosoft Officeに付属されており、ローカル環境で使用できるため、初めてのプログラミング言語として会社などで自社用のフォームの作成ができます。