VBAマクロを自動作成する無料アプリ

VBAコードの知識不要😊ChatGPTで機能を追加

MENU

【ノーコード】値が一致したら(別のシートに)対応する値を転記する(連想配列)

エクセルVBAマクロを自動作成する無料アプリです。

例として「値が一致したら(別のシートに)対応する値を転記(コピー)するVBAマクロを作成します。

事例 番号と氏名が一致したら、年齢と住所を転記する

できました😊

 

なお、値が一致したら転記のパターンは下記があります😊

パターンを見る 連想配列を使う

値が一致したら、1行すべてを転記する

値が一致したら、値の横にデータを転記する

値が一致したら、値の横で既存データは上書き、新規データは追加する

フィルターを使う

条件に合うデータを抽出して別シートへ転記|フィルターオプション

 

アプリの設定

アプリのトップページ

 ⇒▼転記・上書き・新規追加・比較

 ⇒【ツール】値が一致したら転記する(値の横に)

 

表示されるVBAコード 

アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。

 

VBAコードを見る

 
Sub デモ() '値が一致したら転記する
 
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
 
'辞書オブジェクトの作成
    Dim 辞書 As Object
    Set 辞書 = CreateObject("Scripting.Dictionary")
'転記元の設定
    Sheets("Sheet1").Select
    Dim 最終行 As Long, 表セル As Range
    最終行 = Cells(Rows.Count, Range("a2").Column).End(xlUp).Row
    Set 表セル = Range("a2" & ":" & Cells(最終行, Range("d2").Column).Address(False, False))
'辞書の作成
    Dim キー As Variant, 対象行 As Range
    For Each 対象行 In 表セル.Rows
        キー = 対象行.Cells(1,1) & "|" & 対象行.Cells(1,2)
        If 辞書.Exists(キー) Then
            対象行.Select
            MsgBox "選択した行に重複があるので終了します"
            Exit Sub
        Else
            辞書(キー) = Array(対象行.Cells(1, 3),対象行.Cells(1, 4))
        End If
    Next
    Set 表セル = Nothing
'転記先 シートの選択
    Sheets("Sheet1").Select
'対象を配列に入れる
    Dim 対象配列() As Variant, 最終行2 As Long
    最終行2 = Cells(Rows.Count, Range("f2").Column).Offset(0,1-1).End(xlUp).Row
    対象配列 = Range("f2" & ":" & Cells(最終行2, Range("j2").Column).Address(False, False)).Value
'対象配列に辞書のアイテムを入れる
    Dim 行 As Long
    For 行 = 1 To UBound(対象配列)
        キー = 対象配列(行,1) & "|" & 対象配列(行,2)
        If 辞書.Exists( (キー) ) Then
            対象配列(行, 4) = 辞書(キー)(0)
            対象配列(行, 5) = 辞書(キー)(1)
        End If
    Next 行
'対象配列をシートに反映する
    Sheets("Sheet1").Range("f2").Resize(UBound(対象配列), UBound(対象配列, 2)).Value = 対象配列
'Application.ScreenUpdatingとApplication.DisplayAlertsをTrueに戻す
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub   

 

ChatGPTで修正

あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!

アプリはこちらから↓↓↓↓