
2つの4ケタまでの自然数を入力して、最大公約数と最小公倍数を算出するプログラムExcelのVisual Basicを用いて作っています。以下のように作ってみたのですが、数値に何を入れても『4ケタまでの自然数を入れてください』になってしまいます。
4ケタの自然数の定義の仕方がおかしいのでしょうか?アドバイスお願いします<m(__)m>
Private Sub 計算_Click()
Dim x As Integer
a = 数値
b = 数値2
c = 1
If (b > a) Then
a = 数値2
b = 数値
End If
If (Int(a) = a) And (0 < a)And (a <= 9999) And (Int(b) = b) And (0 < b ) And (b<= 9999) Then
Do Until c = 0
x = a \ b
c = a - x * b
a = b
b = c
Loop
P = 数値
q = 数値2
r = P * q / a
MsgBox "最大公約数は" & a & "です"
MsgBox "最小公倍数は" & r & "です"
Else
MsgBox "4ケタまでの自然数を入れてください"
End If
End Sub
No.4
- 回答日時:
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
ロジックは変えていません。それでもうまく行くようですが。
入力文字の数字文字、小数点数のチェックで切り抜けているところがあるが、まあこんなものかな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンソールアプリの入力時に改...
-
UWSCで変数をキー入力
-
コマンドプロンプトからのEOFの...
-
コンボボックスで日本語入力を...
-
漢字のソートについて
-
WindowsでEOF
-
数字以外が入力されたらエラー...
-
最早開始時間と最遅完了時刻を...
-
C言語 エラーの原因がわからな...
-
信頼区間の1.96や1.65ってどこ...
-
「Aに対するBの割合」と「Aに対...
-
For文の終了値を関数にしても問...
-
配列をnビットシフトする
-
数学 一次関数 関数 y=-3/4x+k(...
-
std::set<int> で、ある値が何...
-
Enterキーを押されたら次の処理...
-
sscanfとscanfの違いがよくわか...
-
main.c:7:43: warning: implici...
-
#define _CRT_SECURE_NO_WARNIN...
-
InvokeMemberメソッドとは何を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
コマンドプロンプトからのEOFの...
-
4桁の数字以外を入力したらエラ...
-
Eclipseコンソール表示を、リセ...
-
Excel VBAで、Application.Inpu...
-
"scanf"でエンターで改行させな...
-
cout関数を使っているのですが...
-
プログラミングの問題です 「金...
-
scanf関数について
-
Userformの入力順序をタブオー...
-
C言語でgetchar();が上手く使え...
-
プログラムの実行時に'<'でリダ...
-
C言語初心者です。ファイルの読...
-
scanf が無視されます
-
実行結果の順番がおかしいんで...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報