ここから本文です

'もしaが0以外ならば ' もし判別式が正ならば ' そうでなく、判別式が0ならば ...

greatnotbreak914さん

2017/11/2122:14:38

'もしaが0以外ならば
' もし判別式が正ならば
' そうでなく、判別式が0ならば
' そうでなく、判別式が負ならば
'もしaが0で' もしbが0以外ならば

' そうでなくbも0で
' もしcが0以外ならば
' そうでなくcも0ならば

'それぞれをIf文で作成

Dim a, b, c ,d ,x1 ,2 As Double '変数a,b,cは実数
Dim answer As String '解答用の変数answerは文字型に設定

a = Cells(13, 3).Value
b = Cells(13, 5).Value
c = Cells(13, 7).Value

x1=(-b+Sqr)/4*a*c
x2=(-b-Sqr)/4*a*c
判別式のつくり方がわかりません
ここから

'必要に応じて変数を定義すること
'変数answerに解答を代入すること(文字を含むため、文字型に設定している)
'(以下にプログラミングすること。必要に応じて行数を増やすこと。)






'(ここまで)
Cells(17, 2).Value = answer

End Sub

このような条件で,If,End If をメインに使った二次方程式の解をもとめるVBAを教えてください
よろしくお願いします。

閲覧数:
62
回答数:
1

違反報告

ベストアンサーに選ばれた回答

kha_teenさん

2017/11/2407:20:40

' 宣言はおのおの型を指定してください
Dim a As Double, b As Double, c As Double, d As Double, x1 as Double, x2 As double
Dim answer As String

' 判別式
d = b^2 - 4 * a * c

' a が0以外なら
If a <> 0 Then

' 判別式が0以上ならば
If d >= 0 Then
x1 =( - b + Sqr(d)) / (2 * a)
x2 = (- b - Sqr(d)) / (2 * a)

' 判別式が0以外なら
If d <> 0 Then
answer = "x1=" & Format(x1) & " x2=" & Format(x2)
' 判別式が0なら
Else
answer = "x1=" & Format(x1)
End If

' 判別式が負ならば
ElseIf d < 0 Then
x1 = - b / (2 * a)
x2 = Sqr(- d) / (2 * a)


answer = "x1=" & Format(x1) & " + i" & Format(x2) & " x2=" & Format(x1) & " - i" &Format(x2)
End If

' aが0の場合でbが0以外なら
ElseIf b <> 0 Then
x1 = - c / b
answer = "x1=" & Format(x1)

' aもbも0なら
Else
answer = "Error"
End If

この質問は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。