• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:全くの初心者ですVBA)

VBA初心者の悩み-どこが悪いかわからない-

このQ&Aのポイント
  • 質問者はVBAの初心者であり、自身のコードの問題点が分からないと悩んでいます。
  • 質問者はテストの結果を判定するためのVBAコードを作成していますが、どこが間違っているのかわかりません。
  • 質問者はシート1のA列に入力された得点を元に合格判定を行うVBAコードを作成していますが、正しく動作しないようです。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

For i = 1 To Worksheets("Sheet1").Range("A1").End(xlDown).Row.Count tokuten = Worksheets("Sheet1").Cells(i, 1).Value "↑ ここへ移動してみてください。 "For i=1 To・・・の外側では 変数 i が使えないですよね。 If tokuten >= 80 Then kekka = "合格" Else kekka = "不合格" kekka = Cells(i, 2) End If Next i

vbaaaaa
質問者

お礼

ありがとうございます。 変数の記述箇所が全くつかめていませんでした。 なんとかできました。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

このプログラムで何をしようとしているかが書いてないので、何が悪いか判断できません。 ・あなたが期待する動作 ・期待する動作と実際の動作の違い 自分で修正するにしろ、人に修正を頼むにしろ、この二つが無いことにはできません。 あやしい箇所として。 > tokuten = Worksheets("Sheet1").Cells(i, 1).Value ・この時点では、変数iには初期値0が入っているはずです。 ・その下のforループで変数tokutenを使っていますが、ループ前にこの行で設定したままの値で、ループ中は変化していません。 ・変数kekkaに値を代入していますが、それをセルに戻したり、画面やファイルに出力したりといったことが行われていません。外から見たら「なにもしていない」様に見えます。 がありますが、どうするのが正しいのかは、あなたが期待するものがわからないので回答できません。

vbaaaaa
質問者

お礼

ありがとうございます。 修正しました。 練習のために作っているところで質問が曖昧になってしまいましたが、 違う形で作成できました。

回答No.1

VBAで作成するより、Excelの関数を使って作成したほうが早そうな気がするのですが・・。 ちなみに、点数が入っている右隣のセルに判定の文字を出力したい場合は、その判定結果を表示させたいセルに、「=IF(RC[-1]>=80,"合格","不合格")」。 どうしてもVBAで作成したい場合は、以下のサイト等を参考にしてみては如何でしょか。 url : http://hp.vector.co.jp/authors/VA016119/excel/vbafaq01.html

vbaaaaa
質問者

お礼

関数のほうが早いのですが、VBAを練習中です。 ワークシート関数でRC[-1]を使用してみます。 ありがとうございます。