
No.2ベストアンサー
- 回答日時:
i = Cells(Rows.Count, 1).End(xlUp).Row + 1
は、1列の最終行を求めて、それに1加算した値です。
つまり、最終行の次の行です。
添付図では7が設定されます。
最終行は6行目なので、6+1=7です。
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
は1行目から最終行までを繰り返します。
添付図では1行目から6行目まで繰り返します。

他の方もいろんなご説明をいただき今後の参考につながるヒントをたくさんいただきましたが、今の私には簡潔ですごくわかりやすかったのでベストアンサーに選ばせていただきました。すっとした気持ちになりました。ありがとうございました。
No.5
- 回答日時:
#4
すみません。
(この場合、示すものは値「A列の値の入っている最終行ナンバー +1」
を追加した時に消してしまったようなので
上記下に
一方には、For がありますので繰り返し処理を示しています。
No.4
- 回答日時:
こんにちは
=の使い方で疑問が生じてるのでは無いかと思います
= で結ぶ 式に目線を置いて、例の 変数i の左側を見てください
i = Cells(Rows.Count, 1).End(xlUp).Row + 1 は
変数i の左側に何もありません。 これは、代入式です
変数iに右辺のCells(Rows.Count, 1).End(xlUp).Row + 1を代入し(入れ)ています
このコードが実行されるとiは右辺が示すもの(を持つこと)になります。
(この場合、示すものは値「A列の値の入っている最終行ナンバー +1」
繰り返し処理の条件などはForの右側で設定します
i = 1 To Cells(Rows.Count, 1).End(xlUp).Row は ループの条件設定で
iの値が1からCells(Rows.Count, 1).End(xlUp).Rowまで繰り返すと言う
条件(制御)、です。
この場合の変数iは、ループカウント変数とかループ制御変数とか言われています。
変数iは繰り返し処理が行われる度に変数i右の条件で増減(変化)する変数です。
設定によっては値が減ります。例として
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
最終行№から1まで ループごとに-1 Step -1
ご質問にはありませんが
If i = Cells(Rows.Count, 1).End(xlUp).Row Then のように書かれるコードもあります。
これは、If ですので 比較です。
i は Cells(Rows.Count, 1).End(xlUp).Row と =ですか と言う意味で
代入ではなく、iの値も変化しません。
同じ=で結ぶ式でも変数i(左辺)に与える意味が変わります
理解して覚える必要がありますが、沢山ある訳ではありませんので頑張ってください。
余:
=で結ぶ代入式は他にも set を使って=で結ぶ代入式などもありますが、ご質問と大分離れてしまいますので、この辺で・・
詳細を丁寧にご説明いただきありがとうございました。大変勉強になりました。一部少し今の私には難しい部分がありましたので、本当に悩みましたが今回は別の方のご回答をベストアンサーとさせていただきました。ありがとうございました。
No.1
- 回答日時:
こんにちは
構文が全然違います。
>Cells(Rows.Count, 1).End(xlUp).Row
は、「A列の最終行番号」を意味しますので・・
>i = Cells(Rows.Count, 1).End(xlUp).Row + 1
は、変数「i」に、最終行+1の数値を代入する意味になります。
一方で、
>For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
は、Next i までの処理をループする際の、制御変数として「i」を用いており、制御変数「i」の値を、1から最終行まで変化しながら処理を行う構文の一部です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBA for i=1 to lastrow
Excel(エクセル)
-
5
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
6
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
7
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
8
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
9
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
10
xl
その他(Microsoft Office)
-
11
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
12
【VBAエラー】Nextに対するForがありません 対策について
Visual Basic(VBA)
-
13
EXCELマクロで、シート間でのコピーペーストを繰り返す方法
Excel(エクセル)
-
14
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
15
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
16
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
17
ファイルのオープン時に今日の日付にジャンプ
Excel(エクセル)
-
18
エクセルマクロ 【空白セルを無視する方法を教えてください】
Excel(エクセル)
-
19
エクセルで複数のシートのクリアをしたいです
Excel(エクセル)
-
20
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
超恥愚問ですが、CとC++の間に...
-
Pythonを使った機械学習を勉強...
-
【VB.NET】事後バインディング...
-
ホームページビルダー スタイ...
-
MSFormsとは何ですか?
-
プログラミング言語についてです。
-
複素関数はどこはあんまりやら...
-
プログラミングのプの字も知り...
-
sourceforge.jpのソースコード...
-
EclipseでJavaコンパイラのバー...
-
作ったアプレットを自動でアプ...
-
VB.netでxml-rpcの使用は可能??
-
C言語入門サイトについて
-
ウインドウズメディアプレーヤ...
-
realPlayerについて教えてくだ...
-
RealPlayer 8以前のプレイヤー...
-
ソーティングについて
-
unzip32.dllの利用について(64b...
-
TOMCATとANDROIDSTUDIOの違い
-
コマンドボタンの文字が消える!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MSFormsとは何ですか?
-
VBAの「for i=1 to cells(…」...
-
データベースのデータをTextBox...
-
XMLとUMLの相違点?
-
ちょっと特異ですが
-
Excel VBAマクロをマスターする...
-
超恥愚問ですが、CとC++の間に...
-
エクセルVBAを動かすノートPC...
-
C言語の勉強方法を教えて下さい
-
サーブレットで電卓をつくる
-
SQLの勉強がしたい
-
読んで楽しいプログラムを探し...
-
php、Java(Servlet等)の両方を...
-
HTMLはどうのように勉強するん...
-
プログラムの勉強方法
-
java を使って、働いている人へ
-
http://www.mgame.com/ このペ...
-
jQueryの本を探しています。
-
eclipseが開きません。
-
VC++解説書(入門書)でオスス...
おすすめ情報