• 締切済み

条件式

お世話になります。初心者です。条件式について、知恵をお借りいただきたく、投稿しました。 サンプル ------------------------------- for i= 1 to 100 if i =x then Call *** next ------------------------------- 1)この”X”部分の記述法がわかりません。 2)させたいことは次です。 ・ある動作を100回ループさせる。 ・"i"が10増えるごとに、あるスクリプトを呼び出す よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

for i= 1 to 100 Step 10 で普通やることかと思ますが、それでは不都合がありますか。 ーー テストで Sub test01() For i = 1 To 100 Step 10 MsgBox i '処理モジュールを書く Next i End Sub でやればわかるが、i が1,11、21・・で処理できます

  • kirara77
  • ベストアンサー率25% (117/464)
回答No.2

初めまして。 前の方の回答は素晴らしいと思いますよ。 お節介ではありますけど、ちょっと解説させて貰うと、 ( i mod 10 ) = 0 は、 変数iを10で割って、余りが0に成る時と言う意味になり、 つまり10で割り切れればthenの処理をすることになりますね。 これで貴方のしたい事ができますね。

mytool
質問者

お礼

返信が遅れ、申し訳ありませでした。解説いただき、ありがとうございます。補足解説がなければ、理解できませんでした。

  • taunamlz
  • ベストアンサー率20% (175/843)
回答No.1

if (i mod 10) = 0 then Call *** endif

mytool
質問者

お礼

返信が遅れ、申し訳ありませでした。簡潔に例示していただき、ありがとうございます。助かりました。

関連するQ&A

  • VBAで条件式について

    EXEL(VBA)で例えば、A列のデータが入っている行までの中で数値(x)が  x<2 ならばセルに色をぬる。そして空白セルと x>2ならば色をぬらない。 という条件式は、どうしたらいいのですか? Sub InteriorColor() For j= 5 to 21 worksheets(j).activate For i = 1 to 40 '30から40行ぐらい While cells(6+i,6)<>"" If(cells(6+i,6).value<2) Then ’6列7行目から  with selection.interior .Colorindex=45 .patern=xlsorid End with Wend End if Next i Next j End sub ということを連続していない列(5列ぐらい)に対してします。 同じ命令文になる部分もあるので簡潔にしたいという希望もあります。 上部の命令では無限ループの可能性があり実行が止まりません。 どのように記述したらいいのですか? また、同じブックのシート25枚のうち5枚目から21枚目に対して処理します。 5から21までのシートの間で関係ないシートが7枚目と10枚目と15枚目にあります。それを省いての処理もあれば教えてください。

  • 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文の入れ子入れ子でかなりコードが見にくいです・・・。 どなたかよろしくお願いします!

  • bash 条件式について

    他人が作ったシェルスクリプトを見てるんですが、私自身初心者でいくつかよく分からないところがあります。 if文条件式(というよりtestの条件)の等号記号についてです。 if [ 条件式 ]; then で、 1)2つの文字列が等しいかどうか確認する際に用いる記号は = でいいんでしょうか? テキストとして見ている書籍には、”=”で書いてあるのですが、今動いているというスクリプトには”==”と記述してあります。 2)2つの数値が等しいかどうか確認する際に用いる記号は -eq でいいんでしょうか? 今動いているというスクリプトには”==”と記述してあります。”==”と記述してもインタプリタのほうで吸収してくれて動かしてくれているのでしょうか? 今、見ている書籍のサンプルソースにも、文字列比較で、"="と書いてあったり、"=="と書いてあったりとよく分かりません。条件式はif文、それ以外で違ったりしてくるんでしょうか? すみません。よろしくお願いします。

  • Forループの制御について

    VB 2005,Framework2.0を使用しています。 For文を使ったループについてお尋ねしたいことがあります。 For i As Integer = 0 To 10     ’処理 Next i とあったとします。 そうするとループ変数iが0から10になるまで連続してループを行うのですが、これをある条件の時に現在のループ変数から一つ飛ばして次のループからまた処理を行いたい場合どのようにすれば良いのでしょうか? 例えば0~10回中に、現在5回目で特定の条件が一致したときその次の6回目のループは飛ばして7回目のループから再開したいです。 ちなみにこの様に書いても0から10回必ずループされてしまいました。 Dim TEST(10) As Integer TEST(5) = 1 For i As Integer = 0 To 10 If TEST(i) = 1 Then i = i + 1 End If Next i

  • Ifステートメントと条件式を用いた、マクロの記述方式について質問です。(その2)

    Ifステートメントと条件式を用いた、マクロの記述方式について質問です。(その2) 偏差値に対する評価を行う条件式を記述したいのですが。。。  評価基準-偏差値(下限値)  A-60  B-50  C-40  D-それ以下 評価については上述の条件基準に基づきます。 さらに繰り返しにより、セル2~27までの評価を行います。 そこで記述してみたのですが・・・↓ Sub 偏差値評価の出力() Dim x As Integer '偏差値(縦方向) Dim y As Integer '評価(横方向) '偏差値を取得する For x = 2 To 27 偏差値 = Cells(x, 3).Value '偏差値に対する評価を表示する For y = 2 To 27 If 偏差値 < 40 Then '偏差値が40未満 Cells(y, 4) = "D" ElseIf 偏差値 >= 40 Then '偏差値は40以上 Cells(y, 4) = "C" ElseIf 偏差値 >= 50 Then '偏差値は50以上 Cells(y, 4) = "B" ElseIf 偏差値 >= 60 Then '偏差値は60以上 Cells(y, 4) = "A" End If Next y Next x End Sub ↑これだとなぜか、全ての評価が「C」になってしまいます。 どこの記述が間違っているのでしょうか? どなたか教えて頂ければ助かります。

  • どうやってもFor文を抜けてしまいます…(VBA)

    いつもお世話になっております。 VBAで作業をしていたところ、とある箇所でずっと詰まってしまい、 また皆様のお力を借りたいと思い・・・。 おそらく、基礎中の基礎かもしれませんが、お付き合い頂ければ助かります;; 【質問内容】 Functionが2つあったとします。 現在のFunctionから、別のFunctionに飛んで、また元のFunctionに戻ってきた際に、 Forでループ中でも抜けてしまうのでしょうか? おそらく、何を言ってるか分からないと思いますので、以下にコード例を記載します。 _________________________________ 【コード例】 function sample1() Dim roop as Long ’シート1のCell(7,4)には「100」と入力されており、「roopが2~100」の間ループさせます。 for roop + 2 To sheets("シート1").cells(7,4) 処理2 ’特定条件を満たしたら、「sample2」に飛びます。 if 条件 then call sample2 End If next End function _________________________________________________________________________________________ function sample2() ’sample1()で使用していたroop変数をそのまま使用します for roop + 1 To 50 処理2 roop + 1 next ’処理が終わりsample1()のnextに戻ります。 ’roopには、仮に50が格納されているとします。 End function _________________________________________________________________________________________ 上記のコードとなります。 最初はSample1()で処理を行い、特定条件を満たしたらSample2()に移行。 Sample2()の処理が終わったら、元のSample1()に戻る。 2つのFunction内で使用していた「roop」変数は、まだ80にも関わらず、 Sample1()のFor文を抜けてしまいます。 Sample1()のForのループ条件は「2~100」としていますが、 これは別のFunctionに飛ぶと、無くなってしまうのでしょうか? 何を言っているのか分からないなどございましたら、ご指摘ください・・・;; 以上、よろしくお願いします。

  • ループ中にフォームを閉じると、様々な例外が出てしまう・・

    お世話になっております。 VB2005を勉強しております。現在、フォームが一枚だけのシンプルなプログラムを作っています。For~Nextのループ内にApplication.DoEvents()と記述して他の操作を受けられるようにしておりますが、その状態でループ中にフォームを閉じると例外が出てしまいます。それにフォームは消えまても、デバッグ中断ボタンを押すまでプログラム自体はは起動したままです。強制定期にループを破棄する方法をご教授ください。または、ループ中でも正常にプログラムを閉じる方法でも結構です。 ループ内の処理によってエラー内容は違いますが、現在はAccess.Violation.Exceptionという例外がでます。下記のように、なんの処理もしないループを作ってみましたが、やはりこれでも違う例外が出ました。 ・その1 For i As Integer = 0 To 1000000000   Application.DoEvents() Next ・その2 For i As Integer = 0 To 1000000000   Application.DoEvents()   System.Threading.Thread.Sleep(100) Next ちなみに、フォームのClosingイベントでフラグを立てて、 For i As Integer = 0 To maxInt   If flag_closing = True Then     Exit For   End If   Application.DoEvents() Next などとやってみましたが効果がありませんでした。 よろしくお願いいたします。

  • For ~ Next の使い方

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

  • VBAでForループを抜けるためには?

    i = 1 To 1000 Step 1 Next というForループを作って、 ある条件A < 0 に達すると、その時点でiが1000に達していなくても Forループを終了したい場合、どのように記述すれば良いでしょうか?

  • グラフを書きたいのですがどのようにして使うかわかりません

    FOR I=-200 to 200 FOR J=-200 to 200 X(0) = I / 100 ; Y(0) = J / 100 FOR N=0 to 1000 X(N+1) = X(N)^2 - Y(N)^2 + X(0) Y(N+1) = 2*X(N)*Y(N)+Y(0) IF X(N)^2 + Y(N)^2 > 4 THEN PSET(I,J) WHITE ELSE IF N = 1000 THEN PSET(I,J) BLUE ELSE NEXT N END IF NEXT J; NEXT I というグラフを書くプログラムがあるのですがこのプログラムの使い方がわからなくて使えないのでどのようにすれば見れるのか教えてください。

専門家に質問してみよう