色の知識で人生の可能性が広がる!みんなに役立つ色彩検定 >>

セルを選択している時に
Selection.Areas.Count が1なら単一エリア、2以上なら複数エリアです。 というのは、どういう事でしょうか?教えていただけると幸いです。すみません。

教えて!goo グレード

A 回答 (3件)

こんにちは



M$の説明にもAreaは「連続した領域」になっているので、間違っているとは言いにくいのですが・・・
https://docs.microsoft.com/ja-jp/office/vba/api/ …
残念ながら、日本語としては正しい説明文にはなっていないようです。

実際には「連続する領域」ではなく「矩形の領域」として処理されています。
(単純に言えば、選択操作の際の領域をそのまま記憶しているだけと言えます)

実験してみればわかりますけれど、添付図では図の各枠内の範囲を全て選択して以下を実行してみたものです。(図ではそれぞれの選択範囲の枠を赤、青、緑の罫線で囲ってあります)
最終的には全体が「連続した領域」にはなっていますが、Area数は3となります。(選択の仕方によっては、Area数はもっと増えます)
選択されたセル数は、実際には20ですが、単純にVBAでカウントしようとすると30と答えます。

Sub Test()
Debug.Print Selection.Areas.Count '→ 3
Debug.Print Selection.Cells.Count ' → 30

For Each c In Selection
c.Value = c.Value + 1
Next c
End Sub

「For Each」ではEachと言いながらも、セルに対してダブって実行されていることがわかると思います。

※ 重複が出ないように分割して選択してあげれば、上記のようにはなりませんけれど、その場合はArea数は多くなります。(最低で5かな?)
「エリアについて。」の回答画像3
    • good
    • 1

単純にいえば、訳して「選択している領域の個数」ですが。


例えば、3行×4列の12個のセルを選択しt倍意を考えます。
Selection.Countはセルの個数なので12。
Selection.Rows.Countは行の個数なので3。
Selection.Columns.Countは列の個数なので4。
Selection.Areas.Count は領域 (隣接しているセルのブロック)の個数なので1。
Selection.Areas.Count が2になるケースは、領域 (隣接しているセルのブロック)が2であるということですから、例えば、A1とC3のように隣接していないセルを選択している場合です。
    • good
    • 0
この回答へのお礼

A1とA3も 2になるケースなのでしょうか?後、3になるケースは、A1とA3とA5なんかもそうなのでしょうか?Selection.Areas.Countの事です。教えていただけると幸いです。すみません。

お礼日時:2021/08/28 04:47

.Areas は連続した範囲を1つの塊としますので、その塊が1か複数(塊同士は連続していない)かって感じでしょうか。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

このカテゴリの人気Q&Aランキング