• 締切済み

初心者です。エクセルVBAの質問なのですが・・・

エクセルのVBAで 例えば・・・IF関数を使いたい時に Public Sub 練習() 年齢 = InputBox("あなたは何歳ですか。数字だけを入力して下さい。") If 年齢 < 20 Then MsgBox "未成年ですね" ElseIf 年齢 < 30 Then MsgBox "20代ですね。" Else MsgBox "その他の年代ですね" End If End Sub                            のようなものを作って、実行をしたときに、数字を入れてOKボタンではなく、ダイアログボックスのキャンセルや閉じるボタンを押したときに、「その他の年代ですね」が出てきますが、それを出てこないようにすることはできますか?(例えば、キャンセルボタンのような役割をさせるなど・・・)  結構難しいですかね? 教えて下さい。お願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

こういうコードを見つけました。 Sub test01() rtn = InputBox("文字を入力して下さい") If StrPtr(rtn) = 0 Then MsgBox "キャンセルが選択されました" Else If rtn = "" Then MsgBox "文字が入力されていません" Else MsgBox rtn End If End If End Sub

kk85193
質問者

お礼

ありがとうございます。 勉強になりました。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.3

Public Sub InputBoxTest() Dim returnData As String returnData = InputBox("データを入力") If StrPtr(returnData) = 0 Then MsgBox "キャンセルされました" Exit Sub Else MsgBox "データが入力されました" End If End Sub 【StrPtr関数】は、非表示メンバで、オブジェクトブラウザの「クラス」ボックスで右クリック「非表示のメンバを表示」をクリックで、確認。

回答No.2

Inputboxはキャンセルや閉じるボタンで閉じると ""を返しますので どこかに 年齢 =""の条件を入れてexitすれば いいと思います。

kk85193
質問者

お礼

ありがとうございます。

  • tohru999
  • ベストアンサー率49% (76/154)
回答No.1

年齢 = InputBox("あなたは何歳ですか。数字だけを入力して下さい。") If 年齢 < 20 Then の間に If 年齢 = "" Then Exit Sub を入れればどうでしょうか?

kk85193
質問者

お礼

ありがとうございます。

関連するQ&A