|    | 
     ▼。・゚・(ノД`)・゚・。 さん: 
 
>御蔭で理由分かったのですが結局アホなのでコード分かりません。(´・ω・`) 
>全部チェックしてからのELSEはどうやって書けばいいんですか?? 
 
というか、コードを見ただけでは 結局何をしたいのか分かりません。 
 
Dim i As Long 
 
For i = 17 To 66 
  If Range("L2").Value = Range("B" & i).Value Then 
    Range("E" & i).Value = Range("E" & i).Value _ 
     - Range("D" & i).Value * Range("M2").Value 
    Range("C9").Value = Range("C9").Value _ 
      + Range("D" & i).Value * Range("M2").Value 
    Range("C" & i).Value = Range("c" & i).Value - Range("M2").Value 
    Range("G13").FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)" 
      
    Range("k2:m2").ClearContents 
    Range("N2").Formula = "=rounddown(P2,0)" 
   
  ElseIf Range("L6").Value = Range("b67").Value Then 
    Range("G12").Value = Range("g12").Value - Range("o2").Value 
    Range("C69").Value = Range("c69").Value - Range("m2").Value 
     
    Range("k2:m2").ClearContents 
    Range("N2").Formula = "=rounddown(P2,0)" 
  Else 
    MsgBox "商品はありません" 
    Exit For 
  End If 
Next 
 
現在このようになっていますが、これを簡単にすると 
 
For i = 17 To 66 
  If Range("L2").Value = Range("B" & i).Value Then 
    【処理1】 
 
  ElseIf Range("L6").Value = Range("b67").Value Then 
    【処理2】 
 
  Else 
    MsgBox "商品はありません" 
    Exit For 
  End If 
Next 
 
とまとめることができると思うけど、ここで  
>    MsgBox "商品はありません" 
の文は全部調べてからなので、For〜Next のループの外に出します。 
 
>  If Range("L2").Value = Range("B" & i).Value Then 
 
で何回一致したか、変数に覚えておきましょう。 
そうすると、こんな構文になります。 
 
Dim Cnt As Long 
For i = 17 To 66 
  If Range("L2").Value = Range("B" & i).Value Then 
     Cnt = Cnt + 1 '一致した回数をカウント 
    【処理1】 
 
  ElseIf Range("L6").Value = Range("b67").Value Then 
    【処理2】 
 
  End If 
Next 
If Cnt = 0 Then 
  MsgBox "商品はありません" 
End If 
   
こんなふうになります。 
しかし、分らないのは 
 
>  ElseIf Range("L6").Value = Range("b67").Value Then 
>    【処理2】 
> 
のブロックです。このブロックではセルアドレスは固定になってます。 
そうすると、 iが 17 To 66 まで変わるたびに(処理(1))を通らなかったら 
毎回  
>  ElseIf Range("L6").Value = Range("b67").Value Then 
と固定セルの値を比較していますが、 
これは どういうことでしょう。 
For〜Next に入る前とかで、一度だけやっておけば済むような感じですが、 
たぶんそういうことではないのでしょう。 
その辺のところを 日本語とか 上に書いたような疑似コードで説明してみて 
ください。 
 | 
     
    
   |