こんにちは〜ららぽてすらです♪
会社で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はループカウンタを格納するための変数、nameCとnameIは文字列を格納するための変数です。
' 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列の各セルの値を文字列として取得し、それぞれnameCとnameIに格納します。
' 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 IfはIfステートメントの終了を示します。
Next i
NextステートメントはForループの終了を示します。このステートメントにより、次のi値(次の行)に移動します。
End Sub
End Subはサブルーチンの終了を示します。これがあることで、サブルーチンの範囲がどこで終わるのかが明確になります。
有機 あずき美人茶 ペットボトル 500mL 12本セット【送料無料】【有機JAS認定】 価格:3,240円 |
《2000円クーポン配布中》 ヤ−マン アセチノ5Dデザイニングクリーム 35g ボディクリーム 美容クリーム スキンケア アセチノクリーム アセチノ美容クリーム 価格:3,980円 |