Excel

【Excel】VBAマクロで一致したら転記・コピー(別シートや別ブック・複数条件も)

当サイトでは記事内に広告を含みます。

この記事では【Excel】VBAマクロで一致したら転記・コピー(別シートや別ブック・複数条件も)について解説していきます。

ポイントとしては、条件分岐とデータ操作を使用することです。完全な初心者向けに、変数名をわかりやすくaaaaaで括って説明します。

それでは詳しく見ていきましょう!」

 

VBAマクロで一致したら別シートに転記・抽出・コピーする方法【C列2行目から最終行までの文字列が”マウンテンゴリラ”と一致したらその行ごと別シートに転記】

それではまず、VBAマクロで特定の文字列が一致した行を別シートに転記する方法について解説していきます。このケースでは、「マウンテンゴリラ」という文字列がC列にあるかどうかを確認します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub aaaaatransferDataaaaaa()
    Dim aaaaawsSourceaaaaa As Worksheet
    Dim aaaaawsDestaaaaa As Worksheet
    Dim aaaaarowIndexaaaaa As Long
    Dim aaaaalastRowaaaaa As Long

    Set aaaaawsSourceaaaaa = ThisWorkbook.Sheets("Source")
    Set aaaaawsDestaaaaa = ThisWorkbook.Sheets("Destination")
    aaaaalastRowaaaaa = aaaaawsSourceaaaaa.Cells(aaaaawsSourceaaaaa.Rows.Count, "C").End(xlUp).Row

    For aaaaarowIndexaaaaa = 2 To aaaaalastRowaaaaa
        If aaaaawsSourceaaaaa.Cells(aaaaarowIndexaaaaa, 3).Value = "マウンテンゴリラ" Then
            aaaaawsSourceaaaaa.Rows(aaaaarowIndexaaaaa).Copy Destination:=aaaaawsDestaaaaa.Rows(aaaaarowIndexaaaaa)
        End If
    Next aaaaarowIndexaaaaa
End Sub

コードのAlt+F8を押し、マクロ選択画面でaaaaatransferDataaaaaa関数を実行します。

このコードは、ソースシートから「マウンテンゴリラ」と一致する行を検索し、見つけた行を目的のシートにコピーします。繰り返し処理を用いて、全ての行をチェックします。

 

VBAマクロで一致したら別ブックに転記・抽出・コピーする方法【B列2行目から最終行までの文字列で”ミミガー” もしくは同じ行のC列の数値が8で一致したらその行ごと別ブックに転記:OR条件】

続いては、VBAマクロで特定の条件に一致した行を別のブックに転記する方法について解説していきます。このケースでは、「ミミガー」がB列に、またはC列の数値が8である行を別ブックに転記します。

「Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。」


Sub aaaaatransferToAnotherBookaaaaa()
    Dim aaaaawsSourceaaaaa As Worksheet
    Dim aaaaawbDestaaaaa As Workbook
    Dim aaaaawsDestSheetaaaaa As Worksheet
    Dim aaaaarowIndexaaaaa As Long
    Dim aaaaalastRowaaaaa As Long

    Set aaaaawsSourceaaaaa = ThisWorkbook.Sheets("Source")
    Set aaaaawbDestaaaaa = Workbooks.Open("C:\Path\To\DestinationWorkbook.xlsx")


    Set aaaaawsDestSheetaaaaa = aaaaawbDestaaaaa.Sheets("Destination")

    aaaaalastRowaaaaa = aaaaawsSourceaaaaa.Cells(aaaaawsSourceaaaaa.Rows.Count, "B").End(xlUp).Row

    For aaaaarowIndexaaaaa = 2 To aaaaalastRowaaaaa
        If aaaaawsSourceaaaaa.Cells(aaaaarowIndexaaaaa, 2).Value = "ミミガー" Or aaaaawsSourceaaaaa.Cells(aaaaarowIndexaaaaa, 3).Value = 8 Then
            aaaaawsSourceaaaaa.Rows(aaaaarowIndexaaaaa).Copy Destination:=aaaaawsDestSheetaaaaa.Rows(aaaaarowIndexaaaaa)
        End If
    Next aaaaarowIndexaaaaa
End Sub

「コードのAlt+F8を押し、マクロ選択画面でaaaaatransferToAnotherBookaaaaa関数を実行します。」

このコードでは、ソースシートのB列とC列を確認し、指定した条件に一致する行を別ブックにコピー・転記します。

 

まとめ VBAマクロで一致したら転記・コピー(複数・別ブック・別シートも)

ここでは、【Excel】VBAマクロで一致したら転記・コピー(別シートや別ブック・複数条件も)について確認しました。

本コードを活かして、ぜひ業務の効率化につなげてくださいませ。