Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5972 / 13644 ツリー ←次へ | 前へ→

【47906】InputBoxを使って数値の入力と条件適合まで繰り返し tamachan 07/3/26(月) 12:59 発言[未読]
【47907】Re:InputBoxを使って数値の入力と条件適合... ウッシ 07/3/26(月) 13:04 発言[未読]
【47911】Re:InputBoxを使って数値の入力と条件適合... tamachan 07/3/26(月) 13:52 質問[未読]
【47913】Re:InputBoxを使って数値の入力と条件適合... ウッシ 07/3/26(月) 13:58 発言[未読]
【47914】Re:InputBoxを使って数値の入力と条件適合... tamachan 07/3/26(月) 14:20 質問[未読]
【47915】Re:InputBoxを使って数値の入力と条件適合... ウッシ 07/3/26(月) 14:31 発言[未読]
【47916】Re:InputBoxを使って数値の入力と条件適合... tamachan 07/3/26(月) 15:02 質問[未読]
【47917】Re:InputBoxを使って数値の入力と条件適合... ウッシ 07/3/26(月) 15:09 発言[未読]
【47918】Re:InputBoxを使って数値の入力と条件適合... tamachan 07/3/26(月) 15:14 お礼[未読]

【47906】InputBoxを使って数値の入力と条件適合ま...
発言  tamachan  - 07/3/26(月) 12:59 -

引用なし
パスワード
   InputBoxを使用して数値の入力はできるのですが、
入力された数値が条件に適合しない場合に
繰り返しInputBoxとMsgBoxを表示して入力するようにしたいのですが
教えてください。

条件は、
Range("E22") = 1 の場合に
Range("I31") に 1以上の数値をInputBoxから入力したときに
エラーメッセージと再入力InputBoxを表示させたいのです。
1が入力されるまでこの表示を繰り返し行うには
どのようにしたらよいでしょうか。


Sub 階数警告するメッセージボックス()
  
 
Sheets("設定").Select
値 = InputBox("数値を入れてください")
Range("I31").Value = 値
   
  If Range("E22") = 1 And 値 > 1 Then
    タイトル = "階数が1層です"
    メッセージ = "割増設定はできません"
    スタイル = vbCritical + vbRetryCancel       
    MsgBox メッセージ, スタイル, タイトル
  End If

  'この先のマクロの設定を教えてください。

End Sub

【47907】Re:InputBoxを使って数値の入力と条件適...
発言  ウッシ  - 07/3/26(月) 13:04 -

引用なし
パスワード
   こんにちは

Sub test()
  タイトル = "地下の階数が1層です"
  メッセージ = "地組の割増設定はできません"
  スタイル = vbCritical + vbRetryCancel + vbApplicationModal           '※1
  
  値 = InputBox("数値を入れてください")
  Range("I31").Value = 値
  
  Do While Range("E22") = 1 And 値 > 1
    応答 = MsgBox(メッセージ, スタイル, タイトル)
    If 応答 = vbCancel Then Exit Do
    値 = InputBox("数値を入れてください")
    Range("I31").Value = 値
  Loop
End Sub

こんな感じで。

【47911】Re:InputBoxを使って数値の入力と条件適...
質問  tamachan  - 07/3/26(月) 13:52 -

引用なし
パスワード
   ▼ウッシ さん:
Tamachan です。
ありがとうございました。
ところで、
条件をRange("E22")が 0 からの変数で、
Range("I31")がE22未満でなければ
ならないようにするには、どのように
変更したらよいでしょうか。

>こんにちは
>
>Sub test()
>  タイトル = "地下の階数が1層です"
>  メッセージ = "地組の割増設定はできません"
>  スタイル = vbCritical + vbRetryCancel + vbApplicationModal           '※1
>  
>  値 = InputBox("数値を入れてください")
>  Range("I31").Value = 値
>  
>  Do While Range("E22") = 1 And 値 > 1
>    応答 = MsgBox(メッセージ, スタイル, タイトル)
>    If 応答 = vbCancel Then Exit Do
>    値 = InputBox("数値を入れてください")
>    Range("I31").Value = 値
>  Loop
>End Sub
>
>こんな感じで。

【47913】Re:InputBoxを使って数値の入力と条件適...
発言  ウッシ  - 07/3/26(月) 13:58 -

引用なし
パスワード
   こんにちは

>Range("E22")が 0 からの変数で、
意味が分かりません。

>Range("I31")がE22未満
の逆の時、繰り返す? Range("I31") >= Range("E22")

Do While Range("I31") >= Range("E22") And 「Range("E22")が 0 からの変数」

???

【47914】Re:InputBoxを使って数値の入力と条件適...
質問  tamachan  - 07/3/26(月) 14:20 -

引用なし
パスワード
   ▼ウッシ さん:

tamachan です。
説明のしかたがよくなっかたようで
ごめんなさい。
Range("E22")にも数値の入力をします。
この数値よりも、Range("I31")の数値が
必ず小さい数値であるようにさせるには、


Sub test()
  Sheets("設定").Select
  タイトル = "地下の階数が1層です"
  メッセージ = "地組の割増設定はできません"
  スタイル = vbCritical + vbRetryCancel + vbApplicationModal           '※1
 
  値 = InputBox("数値を入れてください")
  Range("I31").Value = 値
 If a >= 1 Then
  Do While Range("E22")= 1 And 値 > 1
    応答 = MsgBox(メッセージ, スタイル, タイトル)
    If 応答 = vbCancel Then Exit Do
    値 = InputBox("数値を入れてください")
    Range("I31").Value = 値
  Loop
  
  End If
End Sub

をどのように変更したらよいでしょうか。
教えてください。

【47915】Re:InputBoxを使って数値の入力と条件適...
発言  ウッシ  - 07/3/26(月) 14:31 -

引用なし
パスワード
   こんにちは

>説明のしかたがよくなっかたようで
更にひどくなったような気が・・・*_*;

> If a >= 1 Then
の「a」ってなんでしょうか?

>Range("E22")よりも、Range("I31")の数値が必ず小さい
という条件だけなら、

Sub test1()
  With Sheets("設定")
    .Select
    タイトル = "地下の階数が1層です"
    メッセージ = "地組の割増設定はできません"
    スタイル = vbCritical + vbRetryCancel + vbApplicationModal           '※1
    
    値 = InputBox("数値を入れてください")
    .Range("I31").Value = 値
    
    Do While .Range("I31") >= .Range("E22")
      応答 = MsgBox(メッセージ, スタイル, タイトル)
      If 応答 = vbCancel Then Exit Do
      値 = InputBox("数値を入れてください")
      .Range("I31").Value = 値
    Loop
  End With
End Sub

【47916】Re:InputBoxを使って数値の入力と条件適...
質問  tamachan  - 07/3/26(月) 15:02 -

引用なし
パスワード
   ▼ウッシ さん:
こんにちは tamachan です。
>
>>説明のしかたがよくなっかたようで
>更にひどくなったような気が・・・*_*;
ごめんなさい。
>
>> If a >= 1 Then
>の「a」ってなんでしょうか?
間違いです。
>
>>Range("E22")よりも、Range("I31")の数値が必ず小さい
>という条件だけなら、
Range("E22")に対しRange("I31")が以下の場合でも
このままでよろしいでしょうか。

>
>Sub test1()
>  With Sheets("設定").Select
>    タイトル = "地下の階数が1層です"
>    メッセージ = "地組の割増設定はできません"
>    スタイル = vbCritical + vbRetryCancel + vbApplicationModal           
>    
>    値 = InputBox("数値を入れてください")
>    Range("I31").Value = 値
>    
>    Do While Range("I31") >= Range("E22")
       >=ですと同じ数値の場合再試行のメッセージボックスが
       出てくるのですが?
>      応答 = MsgBox(メッセージ, スタイル, タイトル)
>      If 応答 = vbCancel Then Exit Do
>      値 = InputBox("数値を入れてください")
>      Range("I31").Value = 値
>    Loop
>  End With
>End Sub

【47917】Re:InputBoxを使って数値の入力と条件適...
発言  ウッシ  - 07/3/26(月) 15:09 -

引用なし
パスワード
   こんにちは

>Range("E22")に対しRange("I31")が以下の場合でも
>このままでよろしいでしょうか。
【47911】には「未満」と書いてあったのですが?

以下でOKなら、
>>    Do While Range("I31") >= Range("E22")
>       >=ですと同じ数値の場合再試行のメッセージボックスが
>       出てくるのですが?
Do While Range("I31") > Range("E22")
として下さい。

【47918】Re:InputBoxを使って数値の入力と条件適...
お礼  tamachan  - 07/3/26(月) 15:14 -

引用なし
パスワード
   ▼ウッシ さん:
tamachan です。

おかげさまで解決しました。
親切に指導いただきありがとうございました。
また、不明まことが出ましたら、
投稿しますので、よろしくお願いいたします。

5972 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free