📘 Excel逆引き事典

【VBA】結合されたセルの部分一致で転記する方法

手作業でのデータ入力は時間がかかるだけでなく、ミスのリスクも高まります。この記事では、結合されたセルを部分一致で自動的に転記するVBAマクロを作成し、業務効率化に貢献します。

サンプルコード

VBA
Option Explicit
Sub PartialMatchCopy()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    Application.ScreenUpdating = False '画面更新を停止
    
    Dim lastRow As Long, i As Long
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow '仮にA列から始まるデータがあると想定
        If Not IsEmpty(ws.Range("B" & i)) Then '部分一致対象のセルが空でない場合
            Dim targetRange As Range, cell As Range
            Set targetRange = ws.Range("C:C")
            For Each cell In targetRange.Cells
                If InStr(cell.Value, ws.Range("A" & i).Value) > 0 Then '部分一致判定
                    ws.Range("B" & i).Copy Destination:=cell.Offset(0, -1)
                    Exit For
                End If
            Next cell
        End If
    Next i
    
    Application.ScreenUpdating = True '画面更新を再開
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。