インプットBox Type:=1で空白でOK選択
エクセル2003です。
インプットBOXに数値を入力してもらいます。
整数で1文字以上~8文字以内にさせたいです。
(1)キャンセル選択
(2)間違った入力
(3)未入力でOKを選択
の場合記述してある再入力を促すMsgBoxを表示させたいです。
また(2)(3)はMsgBox表示の後インプットBox入力に戻したいです。
以下に掲載した構文で行うと
(1)インプットBOXの「キャンセル」選択時
→「終了」MsgBox表示(正常)
(2)数字以外を入力した時
→Type:=1にしてある為「数値が正しくありません」
と記述してあるMsgBoxではないが警告メッセージが表示(正常)
・9文字以上入力した場合
→「再入力」MsgBox表示(正常)
・1文字~8文字を入力した場合
→次の処理に進む(正常)
(3)何も入力せず空白の状態でインプットBoxの「OK」を選択
→記述してあるMsgBoxではなく
「入力した数式は正しくありません」と書かれたヘルプ付き警告が
表示されてしまいます。
この時は上記同様に記述内にある
再入力を促すMsgBox
を表示させたいのですがどう記述すればいいのか分かりません。
インプットBoxのType:=1をはずせば
記述してあるMsgBoxが表示するようになりますが
今度は整数以外が入力できてしまいます。
よろしくお願いします。
Do
指示数 = Application.InputBox("指示数を数字で入力してください ", Type:=1)
If 指示数 = "False" Then 'キャンセル選択時
MsgBox "終了します", vbExclamation, "注意"
Call 定位置
Exit Sub
End If
'1文字以上8文字以内の時はループを抜けて次の処理へ
If Len(指示数) <= 8 Then
Exit Do 'Loopを抜けて次の処理へ
End If
MsgBox "ケタ数が違います。再入力してください", vbCritical, "エラー!!"
Loop 'インプットBoxに戻る
---次の処理
お礼
maruru01さん再びお世話になります いつも的確にわかりやすいご指導ありがとうございます おかげさまで、無事解決できました お手数をかけて申し訳ありません、感謝します