- ベストアンサー
最大公約数と最小公倍数を求めるプログラムの質問
- 2つの4ケタまでの自然数を入力して、最大公約数と最小公倍数を算出するプログラムExcelのVisual Basicを用いて作っています。
- 4ケタの自然数の定義の仕方がおかしいのでしょうか?アドバイスお願いします<m(__)m>
- 数値に何を入れても『4ケタまでの自然数を入れてください』になってしまいます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
数値、数値2はどうやって決めておられますか もしやですが、文字列となっているのでは? 試しに a = 数値 b = 数値2 c = 1 If (b > a) Then a = 数値2 b = 数値 End If a = a * 1 B = B * 1 と2行、追加してみて試して見てください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
Private Sub 計算_Click() Dim 数値a(2) 'Dim 数値 As Integer '整数にすると文字入力排除が出来ない For i = 1 To 2 p1: 数値 = InputBox("数値" & i) If Not IsNumeric(数値) Then MsgBox "数値入力!" GoTo p1 End If 数値 = CInt(数値) If 数値 <= 0 Then MsgBox "正の値入力!" GoTo p1 End If If Int(数値) <> 数値 Then MsgBox "整数入力!" GoTo p1 End If If 数値 >= 10000 Then MsgBox "9999までの整数入力!" GoTo p1 End If '--- 数値a(i) = 数値 Next i MsgBox "数値1=" & 数値a(1) MsgBox "数値2=" & 数値a(2) Dim x As Integer a = 数値a(1) b = 数値a(2) c = 1 If (b > a) Then '交換 z = a a = b b = z End If '--------- Do Until c = 0 x = a \ b c = a - x * b a = b b = c Loop '------- P = 数値a(1) q = 数値a(2) r = P * q / a '--------- MsgBox "最大公約数は" & a & "です" MsgBox "最小公倍数は" & r & "です" End Sub ロジックは変えていません。それでもうまく行くようですが。 入力文字の数字文字、小数点数のチェックで切り抜けているところがあるが、まあこんなものかな。
- osamuy
- ベストアンサー率42% (1231/2878)
おっと、 ×If分→○if文
- osamuy
- ベストアンサー率42% (1231/2878)
お礼
うまくいきました!! ありがとうございます(*^_^*)