
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAで、シート間の転記するコードをFOR~NEXTで教えてください。
Visual Basic(VBA)
-
Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。
Visual Basic(VBA)
-
エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示
Visual Basic(VBA)
-
-
4
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
5
【Excel VBA】条件に合った行の表示・非表示を行う方法
Visual Basic(VBA)
-
6
Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。
Visual Basic(VBA)
-
7
VBA ユーザーフォームからSubプロージャ―に値を引き渡す方法
Visual Basic(VBA)
-
8
VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。
Visual Basic(VBA)
-
9
A列に重複した番号の行を条件を指定して削除
Visual Basic(VBA)
-
10
エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします
Visual Basic(VBA)
-
11
該当セルの値を別ブックのシート名と一緒であればコピーしてほしい
Visual Basic(VBA)
-
12
VBAの計算について
Visual Basic(VBA)
-
13
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
14
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
15
Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日
Visual Basic(VBA)
-
16
Excelマクロの作成方法・コーディングをご教授ください。
Excel(エクセル)
-
17
VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。
Visual Basic(VBA)
-
18
EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい
Visual Basic(VBA)
-
19
VBA オリジナル関数で選択セルの合計を作成したい
Excel(エクセル)
-
20
2つ目のコンボボックスが動作しません。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
VBA 実行時エラー1004 rangeメ...
-
5
複数シートの複数列に入力され...
-
6
VBAを使って複数のシートから抽...
-
7
VBA オートフィルター繰り返し
-
8
ExcelのVBマクロを、バックグラ...
-
9
【VBA】特定の条件でセルをコピー
-
10
VBAで変数の数/変数名を動的に...
-
11
EXCEL VBA 転記 条件分岐 新...
-
12
楽天RSSからエクセルVBAを使用...
-
13
excel vbaで教えてください。(...
-
14
グラフマクロで系列を変数にす...
-
15
VBAでsubをcallした場合のみエ...
-
16
テキストボックスから、複数の...
-
17
エクセルBVA範囲
-
18
Excelのシート別でのセルのリン...
-
19
VBAのグラフに違うシートの...
-
20
アクセスからエクセルへ出力時...
おすすめ情報
公式facebook
公式twitter