| 
    
     |  | ▼たかし さん: >はじめまして。
 >VBA初心者で、分からないことだらけなのですが、本を見ながらがんばってます。
 >
 >UserformにあるTextBoxに数字が入力されて、CommandButtonクリックで、A列の
 >下から検索し文字が入力されているセルの1行下に通し番号を入力し、同じ行のB列に
 >TextBoxの値を入力するマクロを作りました。
 >この入力された数値がB列にすでに入力されていた場合にMesBoxを出し、A列、B列の
 >数値を削除したいのですが、どうすればいいのでしょうか?
 >
 >宜しくお願いします。
 
 値を代入する前に、判定をもうけて同じ値が無い場合に代入するというようにしてはいかがでしょうか?
 
 サンプルコードは最後に示します。
 
 解説をつけますと
 Set rg = Range("B:B").Find(TextBox.Value)
 B:Bの範囲でTextBoxと同じ値のセル(複数ある場合は最初のセル)をrgに代入する
 
 rg Is Nothing
 Nothingは、何も代入されていない状態なので、
 rgに何も入力されていない場合、Trueを返します。(オブジェクト比較)
 
 Private Sub test()
 
 Const myMessage As String = "同じ値が入力されています"
 Dim rg As Range
 
 Set rg = Range("B:B").Find(TextBox.Value)
 If rg Is Nothing Then
 '代入処理
 Else
 MsgBox myMessage
 End If
 End Sub
 
 |  |