CommandButton1を押すとワークシートに値を転記するUserform1を作りました。
やりたいことは、ワークシートに転記する前に登録済フリガナと、Userform1のTextBox1を比較し、重複していれば J列 の重複チェックに"●”を入れ、ダイアログで重複していることを表示、処理を抜ける。重複していなければ新規登録できるようにしたいです。フリガナの小さい”ァ”や”ッ”等の拗音(捨て仮名)を大きな文字”ア””ツ”にした J列 も必要かと思い作りました。本を参考にコードを書いていますが、どこをどのようにしたらいいのか分からず困っています。コードと一緒に説明文があると大変助かります。コードはこちらです。よろしくお願いいたします。
ワークシート名:請求先
A列:No. B列:フリガナ(会社名を半角カタカナスペースなしで入力) ~ H列:重複チェック
J列:拗音をExcelのSubstituteで大きくしたフリガナ
-----------Userform1のコード--------------
Private Sub CommandButton1_Click()
'入力必須項目が未入力なら終了(登録しない)
If TextBox1.Text = "" Then
MsgBox "半角カタカナスペースなしで入力してください。", vbInformation, "確認"
Exit Sub
End If
'各テキストボックスの値をシートに転記
Dim TargetRow As Integer
TargetRow = Range("A" & Rows.Count).End(xlUp).Offset(1).Row
Range("A" & TargetRow).Value = TargetRow - 1
Range("B" & TargetRow).Value = TextBox1.Text
Range("C" & TargetRow).Value = TextBox2.Text
Range("D" & TargetRow).Value = TextBox3.Text
Range("E" & TargetRow).Value = TextBox4.Text
Range("F" & TargetRow).Value = TextBox5.Text
'リストボックスに追加
ListBox1.AddItem TargetRow - 1
ListBox1.List(ListBox1.ListCount - 1, 1) = TextBox1.Text
ListBox1.List(ListBox1.ListCount - 1, 2) = TextBox2.Text
ListBox1.List(ListBox1.ListCount - 1, 3) = TextBox3.Text
ListBox1.List(ListBox1.ListCount - 1, 4) = TextBox4.Text
ListBox1.List(ListBox1.ListCount - 1, 5) = TextBox5.Text
'コントロールのクリア
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub userform_Initialize()
'初期化処理
Worksheets("請求先").Activate
'リストボックスの設定
With ListBox1
.Font.Size = 12
.ColumnCount = 6
.ColumnWidths = "1cm;6cm;8cm;2cm;11cm;2cm"
.TextAlign = fmTextAlignLeft
'リストボックスに請求先情報を追加
Dim I As Integer
Dim lastrow As Integer
lastrow = Range("A" & Rows.Count).End(xlUp).Row
For I = 2 To lastrow
If Cells(I, 7).Value <> 1 Then
.AddItem Cells(I, 1).Value
.List(.ListCount - 1, 1) = Cells(I, 2).Value
.List(.ListCount - 1, 2) = Cells(I, 3).Value
.List(.ListCount - 1, 3) = Cells(I, 4).Value
.List(.ListCount - 1, 4) = Cells(I, 5).Value
.List(.ListCount - 1, 5) = Cells(I, 6).Value
End If
Next
End With
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
CountIfにて("検索したい列範囲 例:Range("B:B")",TextBox1.Text) が1になれば既に存在しているので書き込まないようIf文で分岐をさせるとか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) VBA 同日で2回目(午後)の体温を登録するときのコード 3 2022/08/28 20:29
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルマクロ:複数列 重複があった場合、メッセージと印入れる方法
Excel(エクセル)
-
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
-
4
エクセルのマクロで検索・抽出したデータを修正及び更新して元データに反映
Excel(エクセル)
-
5
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
6
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
-
7
VBAで重複する項目を1つにまとめて金額を合計したい
Excel(エクセル)
-
8
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
11
Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。
Visual Basic(VBA)
-
12
VBAで重複データを確認したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
VBA 別ブックからの転記の高速...
-
VBA 重複チェック後に値をワー...
-
マクロ実行後に別シートの残像...
-
VBA 実行時エラー1004 rangeメ...
-
VBA 空白行に転記する
-
VBAで質問ですが、皆さんはどの...
-
エクセル 複数シートの同一セ...
-
EXCELのSheet番号って変更でき...
-
Count Ifのセルの範囲指定に変...
-
Excel2013で切り取り禁止
-
エクセルVBA:軸の設定でエラー...
-
100万件越えCSVから条件を満た...
-
VBAで変数の数/変数名を動的に...
-
複数シートの複数列に入力され...
-
エクセルVBAについて教えて...
-
ExcelのVBマクロを、バックグラ...
-
【VBA】データを各シートに自動...
-
GASでチェックボックスを一括of...
-
【VBA】特定の条件でセルをコピー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
マクロ実行後に別シートの残像...
-
VBA別シートの最終行の次行へ転...
-
Count Ifのセルの範囲指定に変...
-
Changeイベントで複数セルへの...
-
VBAで変数の数/変数名を動的に...
-
VBA 別ブックからの転記の高速...
-
【VBA】特定の条件でセルをコピー
-
VBA 実行時エラー1004 rangeメ...
-
楽天RSSからエクセルVBAを使用...
-
Unionでの他のシートの参照につ...
-
複数シートの複数列に入力され...
-
ExcelのVBマクロを、バックグラ...
-
100万件越えCSVから条件を満た...
-
VBA Userformで一部別シートに...
-
Excel VBA オートフィルターで...
-
Excel2013で切り取り禁止
-
VBAでEXCELから固定長...
おすすめ情報