

Excel VBAにて、SpecialCells(xlCellTypeVisible) に関する質問です。
セル ("A1:B7")に表があります。
ab
11
11
22
22
33
33
下記のVBAにて、temp2の値が、1となります。これが分かりません。
当方、欲しいのは、オートフィルタ後の見えている行の数です。
temp1=6は、オートフィルタで、選択されたセルs+ヘッダの計6こということで理解しています。
temp3=2は、列の数として、合っています。
Sub Macro1()
Dim aa As Range
Set aa = Range("A1:B7")
aa.AutoFilter Field:=2, Criteria1:="2"
temp1 = aa.SpecialCells(xlCellTypeVisible).Cells.Count 'temp1=6
temp2 = aa.SpecialCells(xlCellTypeVisible).Rows.Count 'temp2=1
temp3 = aa.SpecialCells(xlCellTypeVisible).Columns.Count 'temp3=2
End Sub
考え方として、間違ってはいないと思うのですが、行の数を求めるには、どのようにすれば良いでしょうか?
No.1ベストアンサー
- 回答日時:
こんにちは。
>temp2 = aa.SpecialCells(xlCellTypeVisible).Rows.Count 'temp2=1
Rows というものは、あくまでも、ひとつまとまりになったものの行の範囲のことですから、飛び飛びになったAreas(Rangeの集合体)の状態では、その先頭のAreaのひとつしか数えません。
a b
2 2
1 1
2 2
2 2
3 3
3 3
だから、この場合は、2になるはずです。
以下の考え方で、見比べてみてください。ひとつは、列に対して、もうひとつは、Area に対してカウントしています。
temp4 = aa.Resize(, 1).SpecialCells(xlCellTypeVisible).Cells.Count
For Each a In aa.SpecialCells(xlCellTypeVisible).Rows.Areas
temp5 = temp5 + a.Rows.Count
Next
Wendy02さん、非常に分かりやすい説明、ありがとうございます。
Rowsの概念をきちんと理解することが大切なのですね。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキエロってどういう意味です...
-
pon de~ の意味
-
ローマ字の書き方
-
Cachito (坊や)の歌詞の意味...
-
トスティの歌曲「セレナータ」...
-
フランス語に詳しい方、教えて...
-
no+名詞+whateverについて
-
そう言ってもらえてうれしい を...
-
I was sorry. ってありですか?
-
フランス語和訳依頼
-
A or B の意味
-
【スペイン語】スペイン語のコ...
-
メキシコは何語
-
比較に表現の Nothing と No ot...
-
aloha e komo maiのハワイ語の意味
-
if it ever was の意味は?
-
フランス語の添削をお願いします
-
スペイン語の「灯台」el faro ...
-
スペイン語のserとestarについて
-
英文構造
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキエロってどういう意味です...
-
スペイン語で 私はあなたのこと...
-
PCのウイルスについて
-
スペイン語訳してください。
-
スペイン語のわかる方、教えて...
-
スペイン語 Es que... の文と...
-
te amo とは… te amoってスペイ...
-
意味がわからなくて困っています
-
ExcelでXMLっぽいファイルの編...
-
ブラジル/ポルトガル語で…
-
スペイン語でわからないところ...
-
pon de~ の意味
-
トスティの歌曲「セレナータ」...
-
ローマ字の書き方
-
A or B の意味
-
比較に表現の Nothing と No ot...
-
no+名詞+whateverについて
-
I was sorry. ってありですか?
-
スペイン語で歯医者はdentista...
-
don't have~ と have not~...
おすすめ情報