Excel VBA 質問スレッド №2044 (解決済)

子供の学校からの問題で困ってます

投稿者 : みお     投稿日時 : 2024/11/18(Mon) 23:34:29     OS : Windows 11     EXCEL : Excel 2019
InputBox関数を用いて数値を繰り返し入力する。999を入力すると入力を終了し、それまでに入力した数値の中の最大値と最小値をMsgbox関数を使って表示する。

〈実行結果〉
①数値を入力する。何回か繰り返す
②999を入力したら、入力を終了する
③最大値が表示される
④続けて、最小値が表示される

ヒント
①次の変数を使うとよい
suu:キーボードから入力した数値を保存する変数
max:最大値を保存する変数
min:最小値を保存する変数
②繰り返しにはDo While関数を使うといい。

教えてくださいm(_ _)m

スポンサーリンク
[返信 1] Re : 子供の学校からの問題で困ってます
投稿者 : てらてら     投稿日時 : 2024/11/19(Tue) 07:02:10
こんにちは。

Do While でなく Do を使いたいところだが、、、
参考にしてみてください。

Sub macro()
    Dim suu As Long
    Dim max As Long
    Dim min As Long
    
    max = 0
    min = 2147483647    'Long 最大値
    
    Do While suu <> 999
    
        On Error Resume Next 'キャンセルボタン対策
        
        suu = CLng(InputBox(Prompt:="数字を入力してください。"))
            
        If suu <> 999 Then
            If max < suu Then max = suu
            If min > suu Then min = suu
        End If
        
    Loop

    MsgBox "最大値は、" & max
    MsgBox "最小値は、" & min
    

End Sub

Doならこれ。

Sub macro2()
    Dim suu As Long
    Dim max As Long
    Dim min As Long
    
    max = 0
    min = 2147483647    'Long 最大値
    
    Do
    
        On Error Resume Next 'キャンセルボタン対策
        
        suu = CLng(InputBox(Prompt:="数字を入力してください。"))
            
        If suu = 999 Then Exit Do
        
        If max < suu Then max = suu
        If min > suu Then min = suu
        
    Loop

    MsgBox "最大値は、" & max
    MsgBox "最小値は、" & min
    

End Sub

[返信 2] Re : 子供の学校からの問題で困ってます
投稿者 : みお     投稿日時 : 2024/11/19(Tue) 12:44:22
■[返信 1] てらてらさん(2024-11-19 07:02:10)の記事
> ありがとうございました。
> 大変助かりました。

実際に入力してみて、指示通りになりました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2024-12-07 23:40:07 )
タイトルとURLをコピーしました