• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelマクロで、スコアによって順位付けをしたい。)

Excelマクロでスコアによる順位付けをしたい方法

このQ&Aのポイント
  • Excelマクロを使用して、スコアによって順位付けを行いたいと考えていますが、具体的な方法を知りません。ゴルフの成績表があり、E列に順位を入力したいのですが、どのようにすればよいのでしょうか?初心者ですので、わかりやすく教えていただけると助かります。
  • 自分で作ったマクロを使用して順位付けを行いたいのですが、コンパイルエラーが発生し、正常に動作しません。マクロの修正方法など、教えていただけると助かります。
  • Excelマクロでスコアによる順位付けをする方法について教えてください。ゴルフの成績表があり、E列に順位を入力したいのですが、具体的な手順がわかりません。初心者向けのわかりやすい解説をお願いします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

気になる点を挙げます。 >If Cells(i, 4).Value > 30 Then E列ならCells(i, 5)のはずです。 「30以上」は30も含むので">=30"とすべきです。 >Value = i Valueという変数はありません。 E5に設定するなら、Cells(5, 5).Value = 1 になります。 >Range(E5).Offset(i, 0).Select E5という変数は未定義です。 Range("E5")のように文字定数にします。 また、Selectしただけでは何も起きません。 >Else >5.もし、4個右側が0(ゼロ:不参加)であれば  先のIfのElseは30以下になります。=0ではありません。 よって、ElseIf Cells(i, 5) = 0 Then とすべき。 最後に、E5セルに次々と上書きしていますが、これでは 最後に処理する34行目の結果しか反映されないのでは?

kyoutanuki
質問者

お礼

ありがとうございました。 当方ごく初心者で、ご指摘の意味がわからず、いろいろ本を読んで勉強しました。 以下のようにした結果、うまく思い通りに出来ました。 お礼が遅くなり申し訳ありませんでした。 Sub 順位付け() ' 順位付け Macro ' 優勝2位3位の順位付けを行う For i = 5 To 38 '5行目から38行目まで34名分 If Cells(i, 9).Value >= 30 Then 'その行の9列目の数字が30以上であれば Cells(i, 5).Value = i - 4 '5列目に、1位から順位を付ける Else 'その行の9列目の数字が30未満(不参加)であれば Cells(i, 5).Value = i + 40 '順位を40足した順位とする End If Next i End Sub '

すると、全ての回答が全文表示されます。

関連するQ&A