• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAにて、SpecialCells(xlCellTypeVisible) に関する質問)

Excel VBAでSpecialCells(xlCellTypeVisible)を使用した際の行数が正しく取得できない

このQ&Aのポイント
  • Excel VBAのSpecialCells(xlCellTypeVisible)を使用してオートフィルタ後の見えている行の数を取得する際、正しく行数を取得できない問題が発生しています。
  • 上記のVBAコードでは、temp2の値が1になってしまい、期待する行数と異なっています。
  • 行数を正しく取得する方法を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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

noname#95859
質問者

お礼

Wendy02さん、非常に分かりやすい説明、ありがとうございます。 Rowsの概念をきちんと理解することが大切なのですね。 ありがとうございます。

関連するQ&A