5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
ひらさんの投稿
(投稿ID: 4814)
先ほど問題を解いたところ、回答エクセルに比べendifの数が1つ少なかったのですが、問題なく動きました。
【自分の書いたマクロ】
Sub gouhi()
Dim gyo
For gyo = 2 To 11
If Range("C" & gyo).Value = "男性" Then
If Range("D" & gyo).Value >= 80 Then
Range("H" & gyo).Value = "合格"
Else
Range("H" & gyo).Value = "不合格"
End If
ElseIf Range("D" & gyo).Value >= 70 Then
Range("H" & gyo).Value = "合格"
Else
Range("H" & gyo).Value = "不合格"
End If
Next
End Sub
【答えのエクセルのマクロ】
Sub GogakuFugokaku()
Dim gyobangou
For gyobangou = 2 To 11
If Range("C" & gyobangou).Value = "男性" Then
If Range("D" & gyobangou).Value >= 80 Then
Range("H" & gyobangou).Value = "合格"
Else
Range("H" & gyobangou).Value = "不合格"
End If
Else
If Range("D" & gyobangou).Value >= 70 Then
Range("H" & gyobangou).Value = "合格"
Else
Range("H" & gyobangou).Value = "不合格"
End If
End If
Next
End Sub
elseif(改行せず使用)はあまり使用しない方がよいのでしょうか。
もしすでに過去この件がお話しされていたら申し訳ございませんが、
ご教示いただけますと幸いです。
小川 慶一さんのコメント
(コメントID: 6744)
'【自分の書いたマクロ】
'[1] インデントを整形します。
' sub ... end sub の中は一段インデント
' if ... elseif ... else ... end if でひとつの塊です。
' コードの流れをおいきれなかったのは、インデントが整っていなかったからでしょう。
全体構造としては、書かれたマクロは、以下のようなものです。
sub
if ...
かたまり[1]
elseif ...
かたまり[2]
else ...
かたまり[3]
end if ...
end sub
インデントが揃っていなかったため、この構造を見抜けなかったものと思います。
まずは、以上です。
以下に、インデントを整えた状態のコードを載せます。
以下は、インデントを行う様子を撮影した動画です。
これも参考にしてください。
https://www.dropbox.com/s/bl4sfrh7prroiwe/200805_kaitou.mp4?dl=0