Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
お問い合わせリストを作成するときに既に登録されている場合には、登録できないようにしたい。
投稿日時: 22/11/19 14:00:08
投稿者: 青天の霹靂

お世話になっております。
エクセルVBAを独学で勉強しており、自分でネットなどを調べながら職場で利用するための
入力フォームを作成し下記のようにコードを記載したところエラーとなりました。
 
エラー箇所は、下記の場所です。
 If TextBox1.Value <> "" Then MsgBox ("既に登録済みです。") Exit Sub
 
やりたいことは、入力フォームに登録されていないかを検索で確認し、登録NOがある場合には
既に登録済みなので、新規で登録ができないようにしたい。
 
Private Sub CommandButton1_Click()
  
 If TextBox1.Value <> "" Then MsgBox ("既に登録済みです。") Exit Sub
 
  
  '最終行
  With Cells(Rows.Count, "A").End(xlUp)
    .Offset(1, 0) = WorksheetFunction.Max(Range("A:A")) + 1 '新規でNoを入力
    .Offset(1, 1) = TextBox2.Value '日付を入力
    .Offset(1, 2) = TextBox3.Value '対応者を入力
    .Offset(1, 3) = TextBox4.Value '内容を入力
    .Offset(1, 4) = TextBox5.Value '連絡日を入力
    .Offset(1, 5) = TextBox6.Value '連絡者を入力
    .Offset(1, 6) = TextBox7.Value '連絡先を入力
   
  End With
   
  'テキストボックスとリストボックスはクリア
  TextBox1.Value = ""
  TextBox2.Value = ""
  TextBox3.Value = ""
  TextBox4.Value = ""
  TextBox5.Value = ""
  TextBox6.Value = ""
  TextBox7.Value = ""
  ListBox1.Clear

回答
投稿日時: 22/11/19 17:44:22
投稿者: WinArrow
投稿者のウェブサイトに移動

エラーの個所しか読んでいません。
※エラーメッセージも、書いて下さいね。
 
> If TextBox1.Value <> "" Then MsgBox ("既に登録済みです。") Exit Sub
 を
 If TextBox1.Value <> "" Then
     MsgBox "既に登録済みです。"
     Exit Sub
End If
に変更してみましょう。
 

回答
投稿日時: 22/11/19 18:43:26
投稿者: simple

    Dim m
    m = Application.Match(CLng(TextBox1.Value), Columns(1), 0)
    If Not IsError(m) Then
        MsgBox "既に登録済みです。"
        Exit Sub
    End If
というようなことですか?
 
あえてワークシートを特定していませんが、指定したほうが間違いは少ないと思います。
With Cells(Rows.Count, "A").End(xlUp) についても同様のことが言えますね。

投稿日時: 22/11/20 07:56:32
投稿者: 青天の霹靂

[quote="WinArrow"]エラーの個所しか読んでいません。
※エラーメッセージも、書いて下さいね。
 
> If TextBox1.Value <> "" Then MsgBox ("既に登録済みです。") Exit Sub
 を
 If TextBox1.Value <> "" Then
     MsgBox "既に登録済みです。"
     Exit Sub
End If
に変更してみましょう。
 
おはようございます。
 
>※エラーメッセージも、書いて下さいね。
 
ご指摘ありがとうございます。
エラーの内容を記載しないと分からないですよね。
以後気を付けたいと思います。
 
教えていただいたとおりに修正したところエラーなく動きました。
大変ありがとうございました。