
No.3ベストアンサー
- 回答日時:
For i =1 to n (n=50)
・・・(処理)
debug.print i & "回実行しました"
next i
とやると1から50まで、デバッグウィンドウに出力されます。
処理は50回されているということです。
ループは、i=51になったから抜けたということです。
これと同じ意味
i = 1 '←初期値
do until i > 50 '←50超えたら抜ける
・・・(処理)
i = i + 1
loop
もっと噛み砕くと
i = 1 '←初期値
do
if (i > 50) then '←50超えたら抜ける
exit do
end if
・・・(処理)
i = i + 1
loop
ということです。
No.4
- 回答日時:
どうもです.
下記のようなVB風コードを実行すると
(変数の型はこちらで推測しました)
--------------------------------
Dim i As Integer
For i = 1 To 2
Debug.Print i ・・・1,2を表示
Next
Debug.Print i ・・・3を表示
--------------------------------
forループの中は,1,2で終了しますが,上記のようにNextの後でiの値を見るとTo で指定した値よりも多くなります.
e-lさんは,上記のようなことをいいたいのではないでしょうか?
そうだと仮定して,進めさせていただきますと,
乱暴な言い方をすればFor文の制御仕様によるものです.
Nextの部分でiを指定分インクリメントし
Toの後の値未満であれば継続で,for文の直後に戻るようなイメージです.
一般的には,nextの外でiの値を利用するケースは少ないですが,制御仕様を知らないとびっくりします.
自問自答すると潜在的にForループ内のiしか使用しないようにコーディングしているようです(!?)
C系風の場合も結果は同様です.
--------------------------------
int i;
for(i=1;i<=2;i++){
printf ("%d\n",i); ・・・1,2を表示
}
printf ("%d\n",i); ・・・3を表示
--------------------------------
Cの場合は,for(初期値,継続条件,増減方法)になっているので,個人的にはVBよりは直感的で,わかりやすいです.
少なくとも他にVB.net VBSなどもこのような仕様になっています.
よって,あなたのVBは壊れていないように思います.
上記の結果から,どうしてもNextの後でiを使用するならばi-1とすればよいかもしれません.
実際のコードが解らないので,推測してみましたが,的はずれでしたらごめんなさい.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) Pythonでこのプログラミングを作成するには 2 2022/10/25 21:19
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- その他(プログラミング・Web制作) Pythonでこのプログラミングを作りたいのですが 1 2022/10/24 18:56
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
流れ図(フローチャート)が分か...
-
VBAで3秒だけ時間を止めたい
-
CSVファイルの特定の行だけを読...
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
UWSCのスクリプトで行き詰って...
-
Java 南京錠
-
範囲指定したセルを1つずつ飛...
-
VBA for文が止まらない
-
JavaScript do~while文/for文...
-
画面を強制的に再描画させる方法
-
imacros 内でのループ処理
-
VBA for i=1 to lastrow
-
エクセルVBAで
-
vb.netです。2次元配列の要素を...
-
エクセル vba関数 Forループに...
-
UWSCに制限時間を付けたいです
-
JavascriptのWhile文やFor文の...
-
ループ利尿薬について
-
ループを回すという意味は何で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UWSCの終了の仕方
-
画面を強制的に再描画させる方法
-
Escキーを押すと、中断する時と...
-
範囲指定したセルを1つずつ飛...
-
vb.netです。2次元配列の要素を...
-
VBAで3秒だけ時間を止めたい
-
エクセルの当番表を作っていま...
-
UWSCに制限時間を付けたいです
-
DOSコマンドのループ内のTIMEコ...
-
VBAでの一時停止と再開の方法
-
CSVファイルの特定の行だけを読...
-
DoEventsが必要な理由について
-
GIFアニメをループさせたくない
-
VBA for i=1 to lastrow
-
Do whileでExitせず、ループの...
-
VBA Boxが空白の場合のメッセー...
-
vb.netからエクセル関数書き込み
-
イベントの発生を待つ
-
乱数の桁数指定、または範囲指定。
-
エクセル関数で1〜12の数字がル...
おすすめ情報