|
▼北 さん:
こんばんは。
>Areasについての質問です。
Rangeオブジェクトは 、セル範囲は、A1:C3とか A9:C10などのように
連続した距形範囲ばかりではなく、
上記の連続していないふたつのセル範囲を一緒に存在させることも出来ます。
このとき、Areasコレクションが意味を持ってきます。
AreasコレクションによってRangeオブジェクトから二つの不連続セル範囲を
取得することが可能になります。
新規ブックの標準モジュールに
'===========================================================
Sub test()
Dim cr As Range
Dim rng As Range
Set rng = Range("a1:c3,a9:c10")
rng.Select
rng.Copy
MsgBox "この選択セル範囲を例にあげ、For Each文でAreasコレクションの要素を取得すると・・、"
For Each cr In rng.Areas
cr.Select
MsgBox cr.Address
Next
Application.CutCopyMode = False
rng.Select
MsgBox "これをAreasコレクションではなく、セル範囲の要素を全て取得すると・・・"
For Each cr In rng
cr.Activate
MsgBox cr.Address
Next
MsgBox "いかがですか?Areasの意味が見えてきましたか?"
End Sub
このコードを実行して見て、Areasの意味を確認してみてください。
>
>Dim R As Range, ckR As Range
> Set ckR = Range("A6:D65536").SpecialCells(2, 1)
> For Each R In ckR.Areas
> と
> For Each R In ckR
> とでは
> With R.Cells(R.Cells.Count).Offset(1, 1)
> .Value = WorksheetFunction.Sum(R)
> End With
> Next
>End Sub
>
>全く異なった結果が出ます。
>このAreasというものはどのような理解をしたら良いのでしょう。
>同じ結果が出そうなものですが。
|
|