C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 168 を表示中)
■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
返信 編集キー/


管理者用

- Child Tree -