この記事では、【Excel】VBAマクロで一致するセルを探す・取得・抽出する方法(同じ値・文字列など)する方法について解説していきます。
ポイントとしては`Find`、`Range`、`Cells`関数を使用することです。
初心者でも理解しやすいように、変数名は少々変わった日本語ローマ字表記を採用しています。
それでは、詳しく見ていきましょう!
VBAマクロで一致するセルを探す方法【インプットボックスに値や文字列を入れ、A列で一致するセルがあればB列に一致!!と出力する】
それではまず、インプットボックスを使用して一致するセルを探す方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub Sagasu()
Dim nyuuryokuchi As String
nyuuryokuchi = InputBox("検索したい文字列を入力してください")
Dim sagasuHani As Range
Set sagasuHani = Sheets("Sheet1").Range("A1:A100")
Dim ketugouCell As Range
For Each ketugouCell In sagasuHani
If ketugouCell.Value = nyuuryokuchi Then
ketugouCell.Offset(0, 1).Value = "一致!!"
End If
Next ketugouCell
End Sub
コードのAlt+F8を押し、マクロ選択画面で`Sagasu`関数を実行します。
このコードでは、ユーザーが入力した文字列とA列のセルを比較し、一致するものがあれば、その隣のB列に「一致!!」と表示されます。
VBAマクロで一致するセルを探す方法【シート1のA列2行目から最終列までセルを順番に読み込み、それがシート2にあるかチェックし、あれば色付けする】
続いては、シート間で一致するセルを探し、色付けする方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub IroZuke()
Dim hikakuCell As Range, sagasuHani As Range
Set sagasuHani = Sheets("Sheet1").Range("A2:A" & Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row)
For Each hikakuCell In sagasuHani
If Not Sheets("Sheet2").Range("A:A").Find(What:=hikakuCell.Value, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
hikakuCell.Interior.Color = RGB(255, 255, 0) ' 黄色に色付け
End If
Next hikakuCell
End Sub
コードのAlt+F8を押し、マクロ選択画面で`IroZuke`関数を実行します。
このコードでは、Sheet1のA列にある各セルがSheet2のA列に存在するかどうかをチェックし、存在すればそのセルを黄色に塗ります。
VBAマクロで一致するセルを探す方法【インプットボックスに値や文字列を入れ、A列で一致するセルがあればシート2に行ごと抽出する】
最後に、インプットボックスで入力された値がA列に存在する場合、その行を別のシートに抽出する方法について説明します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub HikouChuushutsu()
Dim nyuuryokuchi As String
nyuuryokuchi = InputBox("抽出したい文字列を入力してください")
Dim hikakuCell As Range, sagasuHani As Range
Set sagasuHani = Sheets("Sheet1").Range("A1:A100")
Dim gyoushu As Long
gyoushu = 1
For Each hikakuCell In sagasuHani
If hikakuCell.Value = nyuuryokuchi Then
Rows(hikakuCell.Row).Copy Destination:=Sheets("Sheet2").Rows(gyoushu)
gyoushu = gyoushu + 1
End If
Next hikakuCell
End Sub
コードのAlt+F8を押し、マクロ選択画面で`HikouChuushutsu`関数を実行します。
このコードでは、指定された文字列がSheet1のA列に存在する場合、その行全体をSheet2にコピーします。