電子書籍の厳選無料作品が豊富!

Private Sub Worksheet_Activate()

Dim wsData As Worksheet
Dim number As Variant

Const SH_DATA As String = "データ入力"

Set wsData = Worksheets(SH_DATA)

On Error Resume Next

If wsData.Range("G3") = "" Then

number = InputBox("個人番号を入力してください")
If number Is Nothing Then
Exit Sub
Else
wsData.Range("G3") = number
MsgBox "性別を選択してボタン(1)を押してください"
End If

End If

End Sub


このコードの

If number Is Nothing Then

のところがうまく動きません、、、
カーソルをnumberに持っていくと値はきちんとはいっています!
なのに何回やっても
Exit Sub
に飛んでしまいます(-_-;)

どなたかよろしくお願いします(__)

A 回答 (2件)

本来は


 If number Is Nothing Then
の部分でエラーになるのですが(Variant型変数であるnumberの内部処理形式がStringのため)、
 On Error Resume Next
が書かれているためにエラーが無視され、
結果的に条件分岐が正常に行われていないようです。


個人番号が1文字も入力されていなかったら関数を抜ける、という動作がしたいのでしょうか?
InputBoxに何も入力しなかった場合はNothingではなく空文字列が返ってくるので、
 If number = "" Then
と書いてくださいな。
    • good
    • 0
この回答へのお礼

resumeとかぶっているからなんですね(-_-;)
こちらの意図をくみ取ってくださり詳しい説明までありがとうございました!
お世話になりました<(_ _)>

お礼日時:2014/06/11 14:05

If number = "" Then



って書き換えればよいかと。
    • good
    • 0
この回答へのお礼

うまくいきました!!
ありがとうございました!(^^)!

お礼日時:2014/06/11 14:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!