- 締切済み
初心者です。エクセルVBAの質問なのですが・・・
エクセルのVBAで 例えば・・・IF関数を使いたい時に Public Sub 練習() 年齢 = InputBox("あなたは何歳ですか。数字だけを入力して下さい。") If 年齢 < 20 Then MsgBox "未成年ですね" ElseIf 年齢 < 30 Then MsgBox "20代ですね。" Else MsgBox "その他の年代ですね" End If End Sub のようなものを作って、実行をしたときに、数字を入れてOKボタンではなく、ダイアログボックスのキャンセルや閉じるボタンを押したときに、「その他の年代ですね」が出てきますが、それを出てこないようにすることはできますか?(例えば、キャンセルボタンのような役割をさせるなど・・・) 結構難しいですかね? 教えて下さい。お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
こういうコードを見つけました。 Sub test01() rtn = InputBox("文字を入力して下さい") If StrPtr(rtn) = 0 Then MsgBox "キャンセルが選択されました" Else If rtn = "" Then MsgBox "文字が入力されていません" Else MsgBox rtn End If End If End Sub
- diashun
- ベストアンサー率38% (94/244)
Public Sub InputBoxTest() Dim returnData As String returnData = InputBox("データを入力") If StrPtr(returnData) = 0 Then MsgBox "キャンセルされました" Exit Sub Else MsgBox "データが入力されました" End If End Sub 【StrPtr関数】は、非表示メンバで、オブジェクトブラウザの「クラス」ボックスで右クリック「非表示のメンバを表示」をクリックで、確認。
- exchangekytgi
- ベストアンサー率29% (29/98)
Inputboxはキャンセルや閉じるボタンで閉じると ""を返しますので どこかに 年齢 =""の条件を入れてexitすれば いいと思います。
お礼
ありがとうございます。
- tohru999
- ベストアンサー率49% (76/154)
年齢 = InputBox("あなたは何歳ですか。数字だけを入力して下さい。") If 年齢 < 20 Then の間に If 年齢 = "" Then Exit Sub を入れればどうでしょうか?
お礼
ありがとうございます。
お礼
ありがとうございます。 勉強になりました。