C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
C# と VB.NET のサンプル
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
■97146
/ 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
編集キー/
編集
前の記事
(元になった記事)
次の記事
(この記事の返信)
←Re[1]: 【ExcelVBA】For〜Nextの入れ子について
/魔界の仮面弁士
→Re[3]: 【ExcelVBA】For〜Nextの入れ子について
/工場プログラマー
上記関連ツリー
【ExcelVBA】For〜Nextの入れ子について
/ 工場プログラマー
(21/04/06(Tue) 16:35)
#97144
└
Re[1]: 【ExcelVBA】For〜Nextの入れ子について
/ 魔界の仮面弁士
(21/04/06(Tue) 17:30)
#97145
└
【ExcelVBA】For〜Nextの入れ子について
/ 魔界の仮面弁士
(21/04/06(Tue) 17:35)
#97146
←Now
└
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
解決済み
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No97146 (魔界の仮面弁士 さん) に返信 > 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
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-