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

わんくま同盟

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

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

■97145 / 1階層)  【ExcelVBA】For〜Nextの入れ子について
□投稿者/ 魔界の仮面弁士 (3042回)-(2021/04/06(Tue) 17:30:17)
No97144 (工場プログラマー さん) に返信
> この処理がうまくいきません。
行や列を表す変数は、i や j といった名前を使うよりも
x や y、あるいは col や row といった名前にした方が分かりやすくなりますよ。
本題とは直接関係ありませんけれども…。


> For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
これは、「A列(1列目)の最後の行」までのループとなります。

たとえ、B29 や Z80 にデータがあったとしても、A 列が空っぽなら
 For i = 1 To 1
の意味になってしまいますが、それは意図した動作でしょうか?


>  For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
これは、「1 行目の最後の列」までのループとなります。

たとえ、F91 や G3 にデータがあったとしても、1 行目にデータが無ければ、
 For j = 1 To 1
の意味になってしまいますが、それは意図した動作でしょうか?


> 大きい数字を指定すればいいんですが少し見た目が気になるのでお願い致します。
Dim minCol As Long, maxCol As Long
Dim minRow As Long, maxRow As Long
With ActiveSheet.UsedRange
 minCol = .Columns(1).Column
 maxCol = .Columns(.Columns.Count).Column
 minRow = .Rows(1).Row
 maxRow = .Rows(.Rows.Count).Row
End With
Dim c As Long, r As Long
For c = minCol To maxCol
 For r = minRow To maxRow
  'If Not IsEmpty(Cells(r, c).Value) Then
  ' Debug.Print Cells(r, c).Address(False, False); Tab(8); Cells(r, c).Value
  'End If
 Next
Next
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←【ExcelVBA】For〜Nextの入れ子について /工場プログラマー →Re[2]: 【ExcelVBA】For〜Nextの入れ子について /魔界の仮面弁士
 
上記関連ツリー

【ExcelVBA】For〜Nextの入れ子について / 工場プログラマー (21/04/06(Tue) 16:35) #97144
【ExcelVBA】For〜Nextの入れ子について / 魔界の仮面弁士 (21/04/06(Tue) 17:30) #97145 ←Now
  └ Re[2]: 【ExcelVBA】For〜Nextの入れ子について / 魔界の仮面弁士 (21/04/06(Tue) 17:35) #97146
    └ Re[3]: 【ExcelVBA】For〜Nextの入れ子について / 工場プログラマー (21/04/09(Fri) 15:03) #97172 解決済み
      └ Re[4]: 【ExcelVBA】For〜Nextの入れ子について / kiku (21/04/09(Fri) 17:03) #97173 解決済み
        └ Re[5]: 【ExcelVBA】For〜Nextの入れ子について / 工場プログラマー (21/04/15(Thu) 09:13) #97208 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信