Excel VBA 質問スレッド No.91 (解決済)

IFがうまくいきません

投稿者 : しょう     投稿日時 : 2020/07/17(Fri) 19:17:54     OS : Windows 10     EXCEL : Excel 2013
VBAフォームの勉強を始めたばかりで申し訳ありません。
今会員名簿を作っています。会員番号を1から昇順で100まで登録しました。
100より小さい数字が入力されたら「会員番号が不正です」を表示させます。
また会員番号を検索して、同じものがあれば「既に登録済みです」と表示させる
ロジックですが、うまくいきません。50を入力すると「既に登録済みです」は
表示されますが「会員番号は不正です」メッセージは表示されません。
なぜIFで引っかからないのかわかりません。
チェックはどちらかでよいのですが、確認のため二つ入れました。
ちなみにtxtKaiinIDはテキストボックスで、IMEModeはNoControlです。
初歩的な質問ですがよろしくお願いします。

Private Sub txtKaiinID_AfterUpdate()
  LastRecNo = Worksheets("会員名簿").Range("A" & Rows.count).End(xlUp).Row
If txtKaiinID.Value <= Worksheets("会員名簿").Cells(LastRecNo, 1).Value Then
MsgBox "会員番号が不正です"
Exit Sub
End If
Dim FindCell As Range
Set FindCell = Worksheets("会員名簿").Range("B:B").Find(what:=txtKaiinID.Value)
If Not FindCell Is Nothing Then
MsgBox "既に登録があります"
End If
End Sub

[返信 1] Re : IFがうまくいきません
投稿者 : しょう     投稿日時 : 2020/07/18(Sat) 15:29:05
わかりました。テキストボックスはstringになっているので、数値と比較しても正しい答えは
得られないのですね。お騒がせしました。

■[質問] しょうさん(2020-07-17 19:17:54)の記事
> VBAフォームの勉強を始めたばかりで申し訳ありません。
> 今会員名簿を作っています。会員番号を1から昇順で100まで登録しました。
> 100より小さい数字が入力されたら「会員番号が不正です」を表示させます。
> また会員番号を検索して、同じものがあれば「既に登録済みです」と表示させる
> ロジックですが、うまくいきません。50を入力すると「既に登録済みです」は
> 表示されますが「会員番号は不正です」メッセージは表示されません。
> なぜIFで引っかからないのかわかりません。
> チェックはどちらかでよいのですが、確認のため二つ入れました。
> ちなみにtxtKaiinIDはテキストボックスで、IMEModeはNoControlです。
> 初歩的な質問ですがよろしくお願いします。

> Private Sub txtKaiinID_AfterUpdate()
>   LastRecNo = Worksheets("会員名簿").Range("A" & Rows.count).End(xlUp).Row
> If txtKaiinID.Value <= Worksheets("会員名簿").Cells(LastRecNo, 1).Value Then
> MsgBox "会員番号が不正です"
> Exit Sub
> End If
> Dim FindCell As Range
> Set FindCell = Worksheets("会員名簿").Range("B:B").Find(what:=txtKaiinID.Value)
> If Not FindCell Is Nothing Then
> MsgBox "既に登録があります"
> End If
> End Sub

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2020-08-10 18:47:31 )

Page
Top