ららぽてすらブログ

ららぽてすら

2つのデータから家族か判別するVBA作ったので紹介します🌸

こんにちは〜ららぽてすらです♪

会社で2つのデータから名前の姓名判別で家族か判別するための簡単なコード書いたので

紹介します🌸

 

⭐️ソースコード⭐️

 

Sub ComparePartialNames()

 

    ' Define variables

    Dim ws As Worksheet

    Dim rng As Range

    Dim i As Long

    Dim nameC As String

    Dim nameI As String

 

    ' Set your worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

 

    ' Set the range you want to look through

    ' In this case, we assume data starts from row 2, to avoid headers

    ' This will loop until the last row of data in column C

    LastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

 

    ' Loop through each cell in the range

    For i = 2 To LastRow

 

        ' Convert cell values to string

        nameC = CStr(ws.Cells(i, "C").Value)

        nameI = CStr(ws.Cells(i, "I").Value)

 

        ' Check if the first 1 or 2 characters, or last 1 or 2 characters of the names match

        If Left(nameC, 1) = Left(nameI, 1) Or _

           Right(nameC, 1) = Right(nameI, 1) Or _

           Left(nameC, 2) = Left(nameI, 2) Or _

           Right(nameC, 2) = Right(nameI, 2) Then

 

            ' If they match, put a mark in column L

            ws.Cells(i, "L").Value = ""

 

        End If

 

    Next i

 

End Sub

 

 

⭐️ソースコード解説⭐️

 

Sub ComparePartialNames()

 

Subキーワードは、サブルーチン(特定のタスクを実行する一連の命令)を開始することを示します。ComparePartialNamesはこのサブルーチンの名前です。

 

    ' Define variables

    Dim ws As Worksheet

    Dim rng As Range

    Dim i As Long

    Dim nameC As String

    Dim nameI As String

 

Dimキーワードを使用して、サブルーチン内で使用する変数を定義します。ここでは、5つの変数を定義しています。wsは作業シートを参照するための変数、rngは範囲を参照するための変数、iはループカウンタを格納するための変数、nameCnameIは文字列を格納するための変数です。

 

    ' Set your worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

 

Setキーワードを使用して、ws変数にワークシートを割り当てます。ここでは、"Sheet1"という名前のワークシートを指定しています。

 

    ' Set the range you want to look through

    ' In this case, we assume data starts from row 2, to avoid headers

    ' This will loop until the last row of data in column C

    LastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

 

最後の行(LastRow)を特定します。このコードは、C列の最後のデータ行までループを実行します。

 

    ' Loop through each cell in the range

    For i = 2 To LastRow

 

ここでは、Forループを使用して、2行目から最後の行までのすべての行を繰り返します。

 

        ' Convert cell values to string

        nameC = CStr(ws.Cells(i, "C").Value)

        nameI = CStr(ws.Cells(i, "I").Value)

 

CStr関数を使用して、C列とI列の各セルの値を文字列として取得し、それぞれnameCnameIに格納します。

 

        ' Check if the first 1 or 2 characters, or last 1 or 2 characters of the names match

        If Left(nameC, 1) = Left(nameI, 1) Or _

           Right(nameC, 1) = Right(nameI, 1) Or _

           Left(nameC, 2) = Left(nameI, 2) Or _

           Right(nameC, 2) = Right(nameI, 2) Then

 

IfステートメントOr演算子を使用して、名前の最初の1文字または2文字、または最後の1文字または2文字が一致しているかどうかをチェックします。Left関数は文字列の左端から指定した数の文字を返し、Right関数は文字列の右端から指定した数の文字を返します。

 

            ' If they match, put a mark in column L

            ws.Cells(i, "L").Value = ""

 

名前の一部が一致した場合、L列の該当行に〇を記入します。

 

        End If

 

End IfIfステートメントの終了を示します。

 

    Next i

 

NextステートメントForループの終了を示します。このステートメントにより、次のi値(次の行)に移動します。

 

End Sub

 

End Subはサブルーチンの終了を示します。これがあることで、サブルーチンの範囲がどこで終わるのかが明確になります。

有機 あずき美人茶 ペットボトル 500mL 12本セット【送料無料】【有機JAS認定】

価格:3,240円
(2023/4/25 09:43時点)
感想(1件)

《2000円クーポン配布中》 ヤ−マン アセチノ5Dデザイニングクリーム 35g ボディクリーム 美容クリーム スキンケア アセチノクリーム アセチノ美容クリーム

価格:3,980円
(2023/4/9 22:54時点)
感想(45件)