Sub renshu()
Dim gyo3
For gyo3 = 2 To 11
Select Case Range("D" & gyo3).Value
Case Is >= 80
Range("E" & gyo3).Value = "A判定です"
Case Is >= 60
Range("E" & gyo3).Value = "B判定です"
Case Is >= 40
Range("E" & gyo3).Value = "C判定です"
Case Else
Range("E" & gyo3).Value = "D判定です"
End Select
Next
End Sub
Sub renshu_error1()
Dim hani
Dim gyo2
For gyo2 = 2 To 11
hani = Range("E" & gyo2).Value
Select Case Range("D" & gyo2).Value
Case Is >= 80
hani = "A判定です"
Case Is >= 60
hani = "B判定です"
Case Is >= 40
hani = "C判定です"
Case Else
hani = "D判定です"
End Select
Next
End Sub
Sub renshu_error2()
Dim hani
Dim gyo2 'Range’メソッドは失敗しました’_Gloval’オブジェクト
hani = Range("E" & gyo2).Value 'gyo2を指定する前にgyo2が出てるから?
For gyo2 = 2 To 11
Select Case Range("D" & gyo2).Value
Case Is >= 80
hani = "A判定です"
Case Is >= 60
hani = "B判定です"
Case Is >= 40
hani = "C判定です"
Case Else
hani = "D判定です"
End Select
Next
End Sub
浦山大さんの投稿
(投稿ID: 3357)
select caseのコードを作成しておりました。
↑これは自分で何も見ないで作成できるようになりました。
動作も確認済みです。タブの位置も気にしながら作成しています。
以下、変数に纏めてすっきりさせられないかな、
と思って作成してみました。
しかし、値がExcelに入りませんでした。
F8を押すとエラーもなく最後まで動作はしているようです。
変数にしないで実行をすれば通常通りに進みます。
Excelのバージョンは2007です。
質問ばかりで恐縮ですが、
以下のように書くと怒られました。
これは、変数gyo2の中身を指定してあげる前に、
gyo2を使用しようとしているから、
という感覚でいればよいでしょうか?
いずれにせよ、
真似ができるようになったら先へ、先へ進めています。
大切なところは理解できるようになってきましたし、
先生の真似をしながら記載も出来るようになってきました。
感謝しています。
小川慶一さんのコメント
(コメントID: 4816)
ポイントだけ示しますね。
前者:
セルに値を出力する命令をしている行がないですね。
入れるとしたら、Nextの手前でしょう。
後者:
変数は、作った直後には値が入っていません。(*)
ですから、 hani = Range("E" & gyo2).Value は、 hani = Range("E").Value という解釈になります。 Range("E") ではセルを特定することができません。
(*) と、基礎編の段階では思っておいてください。