- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAにて、SpecialCells(xlCellTypeVisible) に関する質問)
Excel VBAでSpecialCells(xlCellTypeVisible)を使用した際の行数が正しく取得できない
このQ&Aのポイント
- Excel VBAのSpecialCells(xlCellTypeVisible)を使用してオートフィルタ後の見えている行の数を取得する際、正しく行数を取得できない問題が発生しています。
- 上記のVBAコードでは、temp2の値が1になってしまい、期待する行数と異なっています。
- 行数を正しく取得する方法を教えていただきたいです。
- みんなの回答 (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の概念をきちんと理解することが大切なのですね。 ありがとうございます。