以下は与えられた自然数が素数であるかどうかを判定する、Excel VBA による素朴なコードです。
自然数が2 とそれ以上の場合で処理を分けていますが、5 行目のelseで
対応するifがないという
というコンパイルエラーが出ます。私はプログラミング言語は、Pascal しか経験がなく、Pascal の場合 5 行目の else から後の処理したい複数の構文を begin end で囲めば問題なく動きます。
Excel VBA で同じ処理をさせるにはどうしたらいいのでしょうか?
Worksheets("素数").Activate '"素数"シートをアクティブにする
Flg = 0
Target = Range("D5").Value
if Target = 2 then MsgBox ("2 は素数です。")
else 'else 対応するifがないというエラーが出る
'begin ・・・・・ Pascalの場合
K = Int(Target / 2)
' 2 以外の素数は奇数なので偶数で割ることを確認する必要はない。
For I = 3 To K Step 2
If Target Mod I = 0 Then
Flg = 1
Exit For
End If
Next I
Snum = Format(Target)
If Flg = 0 Then
MsgBox (Snum + " は素数です。")
Else
MsgBox (Snum + " は素数ではありません。")
End If
'end ・・・・・ Pascalの場合
End If
お礼
ありがとうございました。コードは他にもいろいろ問題がありました(笑)