• ベストアンサー

For ~ Next の使い方

for ~ next 構文の途中でカウンターを進めることはできますか。 For I=1 to 10 処理 if ~ then next 処理 next このようにすると、エラーになります。 仕方なく次のようにしていますが、もっと良い方法はありますか。 For I=1 to 10 処理 if ~ then goto 次の行へ 処理 次の行へ: next

noname#75364
noname#75364

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

For I=1 to 10 処理 if not ~ then 処理 end if next の様にすべきです。 又は、 For I=1 to 10 処理 if ~ then '何もしない else 処理 end if next

noname#75364
質問者

お礼

回答ありがとうございます。うまくいきました。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

continue 文を使えば制御変数をいじらないでもお望みのことができるのではないでしょうか? Continue ステートメント (Visual Basic) http://msdn.microsoft.com/ja-jp/library/801hyx6f(VS.80).aspx

noname#75364
質問者

補足

大変申し訳ありません。説明不足でした。 ContinueはエクセルVBAでは動作しないようです。 VBの方で機会があったら参考にさせて頂きます。回答ありがとうございます。

関連するQ&A

  • excel VBA For ~Next構文について

    excel VBA For ~Next構文についての質問です。 以下のようなマクロがあります(実際はもう少し複雑なことをやっていますが)     For i = 4 To 178      Cells(i, 16).FormulaR1C1 = "=RC[-2]-'" & Lm & "'!RC[-2]"     Next i これに「もし、『Cells(i, 1)』が空白なら、この処理は行わずに、次の行にすすめ」という指示を加えたいのですが、こんな簡単なこと(?)で行き詰ってしまっています。 とりあえず以下のように修正をしてみたのですが・・・    For i = 4 To 178    If Cells(i, 1) = "" Then GoTo ワープ:    Cells(i, 16).FormulaR1C1 = "=RC[-2]-'" & Lm & "'!RC[-2]"    ワープ:   Next i  これで一応こちらの求めている処理はできたのですが、もっと簡単に(もしくはすっきりと) できる方法はないでしょうか?  以上、よろしくお願いいたします。   

  • VB For-Next文でのExitではなく中断は可能?

    初歩的な質問で申し訳ありません・・・ ループで処理しているものがあるのですが、ExitForでループを抜けることはできますが、途中で処理を中断して次のカウンタの処理へ移ることはできるのでしょうか? 例えば For i = 1 to 10   if 関数1() = False then     ■ループ処理を終了するのではなく次のカウンタ[i]に移りたい■   else     Call 関数2()   end if Next i という事をしたいと思っています。 今は For i = 1 to 10   ret = 関数1()   if ret = True then     Call 関数2()   end if Next i という方法で記述していますが、上記のような条件文が10や20もあると、IF文の入れ子入れ子でかなりコードが見にくいです・・・。 どなたかよろしくお願いします!

  • VBA For~Next 

    「wsData」の値を「wsInv」の指定セル(=●●●=16)から4つおきに処理したい。 01:Cells(16 + i * 4, 1) とすると「i」が大きいときに   「""」があると16からスタートしない 02:「For k = 0 To 50」を作成したが、何処に入れても上手く処理出来ない。 For i = 0 To 50 '行 For j = 6 To 28 '列 If wsData.Cells(10 + i, 3).Value = "" Then wsInv.Cells(●●●, 1).Value = wsData.Cells(10 + i, 1).Value wsInv.Cells(●●●, j - 2).Value = wsData.Cells(10 + i, 23 + j).Value End If Next j Next i お力添えをお願いいたします。

  • For~Nextステートメント  途中で止めるには

    For~Nextステートメント で、変数が5なら止めたいのですがIFを使わない方法があったと思うのですが、 忘れてしまいました。 今は、 +++++++++++++++++++++++++++++ Sub test() Dim i As Long For i = 2 To 10 If i = 5 Then Stop End If Next End Sub +++++++++++++++++++++++++++++ としていますが、 If i = 5 Then Stop End If じゃなくても、一つのメソッドで出来た気がするのですが、 わかる方いらっしゃいますか? ご回答よろしくお願いします。

  • EXCEL VBA のFor~Next文で質問です。

    お世話になります。VBA初心者です。 環境はWIN2000,EXCEL2000です。 下記のようなマクロを組んだらNextに対するForがありませんと、エラーが出てしまいました。 申し訳ありませんが、手直しお願いします。 やりたいことは、D97へコピーが終わったら、次はM7からコピーをし、M97へのコピーが終わったらV7からコピーを始めたいのです。 With sheetGR For ii = 7 To 97 Step 10(行の指定) For iii = 4 To 31 Step 9(列の指定) If .Cells(ii, iii) = "" Then .Range(.Cells(ii, iii), .Cells(ii + 4, iii + 2)).Value _ = Sheets("Result").Range("G20:I24").Value End If Exit For If Cells(97, iii) <> "" Then Next iii End If Next ii End With

  • For next使う場合、next iはできない?

    vbsでFor next使う場合、next iはできないのですか? for i = 1 to 2 msgbox "" next i をすると "ステートメントの末尾が不正です"800A401 になります。 しかし for i = 1 to 2 msgbox "" next にすると、問題ないです。 VBAではnext iでも実行できるけどVBSではだめなのでしょうか? 理由を教えてください。

  • テキストボックスの番号を使ったFor~Next文について

    宜しくお願い致します。 エクセルのマクロのフォーム上にtextbox1~textbox10を作成してあります。 これら全てがきちんと入力されているかどうかを調べる命令を書きたいと思っております。 どのようにすればよろしいのでしょうか? 【エラー表示される私の考え】 For i = 1 To 10 If TextBox("& i & ").Value = "" Then MsgBox ("データを再度入力してください。") Exit Sub End If Next i if文のところでエラーが出ます。textboxの表示方法がまずいと思うのですが、どうすればよいのかわかりません。ご指導の程宜しくお願い致します。 なお、For~Next文を使わない方法でも構いません。

  • エクセルマクロの【For・・・Next】で、

    エクセルマクロの【For・・・Next】で、以下のような文を作ってます。 Sub 空欄を消す() For i =1 To 50 If Cells(i + 3,8) = "" Then Rows(i + 3).Hidden = True End If Next End Sub この繰り返す回数【50回】を、シート上の任意のセルの値の回数に変えることはできますか。 例えば「A1」のセルの値が30なら30回繰り返す。 「A1」のセルの値が20なら20回繰り返す。 といったような具合に。

  • VBAのFor構文で

    質問させていただきます。 IF textBox1.value = "" then End If のように、VBAのテキストボックスが空白の場合に起動する構文を作ろうと考えているのですが、 このテキストボックスの数が多いので、どうにかして短く出来ないかと考えています。 VBAのテキストボックスを直接For構文で変更する事は可能なのでしょうか? 例えば For i = 1 to 20 IF textBox(i).value = "" then End If Next i 上記のような構文では実際に動かしたときにtextBoxの指定がされていないのでエラーが出てしまいます。 やはり、各テキストボックスごとに構文を作らなければならないのでしょうか? もし可能なら、その方法を教えていただきたいです。

  • FOR~NEXTで

    よろしくお願いします。 条件が2個あるときの、繰り返し動作を下記のようにマクロにて組みましたが、うまく作動しません。 目的 Cells(q, 1)が空白で無い時で Cells(q, 2)が空白ならば、Cells(q, 2)に”○”を記入する 上記を300回行う で、作ったつもりなんですが、Cells(q, 1)が空白の箇所で終了してしまいます。 q = 1 For I = 1 To 300 If Cells(q, 1) = "" Then Exit For If Cells(q, 2) = "" Then Cells(q, 3) = "○" q = q + 1 Next I よろしくお願いします。

専門家に質問してみよう