| ■97146 / ) |
Re[2]: 【ExcelVBA】For〜Nextの入れ子について |
□投稿者/ 魔界の仮面弁士 (3043回)-(2021/04/06(Tue) 17:35:07)
|
2021/04/07(Wed) 10:02:06 編集(投稿者)
■No97145 (魔界の仮面弁士) に追記 >> For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row > これは、「A列(1列目)の最後の行」までのループとなります。
もしも A列 のみを前提としたコードであったとしても、 上記のように End プロパティを用いる方法は、あまりお奨めしません。 「最終行にデータがあった場合」に対応できないためです。
たとえば、A 列すべてにデータが記述されていた場合、 「Cells(Rows.Count, 1).End(xlUp).Row」は 1 を返すことになります。
ただし End プロパティによる領域終端への参照操作時には、 非表示列・非表示行は存在しないものとして扱われます。
一方、UsedRange ではセルの可視状態は無視されますし、 「書式設定された空欄セルも含まれる」という違いがあります。
> For c = minCol To maxCol > For r = minRow To maxRow
別案。
Dim rCol As Excel.Range, rRow As Excel.Range For Each rCol In ActiveSheet.UsedRange.Columns For Each rRow In ActiveSheet.UsedRange.Rows Debug.Print rRow.Row, rCol.Column Next Next
|
|