• 締切済み

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」になってしまいます。 どこの記述が間違っているのでしょうか? どなたか教えて頂ければ助かります。

みんなの回答

  • benelli
  • ベストアンサー率51% (78/152)
回答No.1

質問文のソースのままだと、すべての結果が27行目の評価になってしまいますよね。 xが27の時のForループで、yが2~27行すべてで処理してしまうため上書きされてしまいます。 以下の行が不要かと。 For y = 2 To 27 Next y それと、yは不要なので全部xに変えてしまって構いません。 Cells(y, 4)   'ここを変える Cells(x, 4)   'こうする 実際に実行チェックはしていませんが、たぶんこんな感じでなおせるかと思います。

関連するQ&A