重複を確認しながら転記処理
動画でExcelマクロ解説
VBAでデータの転記処理2
動画版「マクロ講座」です。
33回は前回に引き続き VBA でデータの転記処理をしますが、転記する前に名前を データベースで検索してから、同じ名前が既に入力されているかどうかを調べます。 重複しないようにするためです。 すでに入力されている時は入力されていることを知らせて入力されていない時にデータを 転記するようにします。
ファインドメソッドで、データベースに同じ名前があるかどうかを調べて、If then Elseステートメントで処理を分けます。
また32回のコードをすっきりと分かりやすくするために for Next ステートメントで 記述し直します。
Excel2019VBAでデータの転記処理2
動画で紹介したコード
For文を使って前回のコードをシンプルに見やすく改善しています。
Sub tenki3a() Set nyuuryoku = Worksheets("Inputdata").Cells(2, 3) Set MasterRange = Worksheets("Mdata").Cells(Rows.Count, 2). _ End(xlUp).Offset(1, 0) For i = 0 To 8 MasterRange.Offset(0, i).Value = nyuuryoku.Offset(i, 0).Value Next End Sub
メインのコード:重複チェックしてからデータを転記するコード
Option Explicit Dim nyuuryoku As Range, MasterRange As Range, i As Integer Sub 検索して転記() Dim kensaku As String, nameclm As Range, myname As Range kensaku = Worksheets("Inputdata").Cells(3, 3).Value Set nameclm = Worksheets("Mdata").Columns(3) Set myname = nameclm.Find(kensaku, LookAt:=xlWhole) Set nyuuryoku = Worksheets("Inputdata").Cells(2, 3) Set MasterRange = Worksheets("Mdata").Cells(Rows.Count, 2). _ End(xlUp).Offset(1, 0) If Not myname Is Nothing Then MsgBox kensaku & " が、すでに入力されていました。" Worksheets("Mdata").Activate myname.Select Else For i = 0 To 8 MasterRange.Offset(0, i).Value = nyuuryoku.Offset(i, 0).Value Next End If End Sub
記事解説は以下のページ → 解説ページへ