マスタに登録した誤字があったら赤字にして修正後を隣列にだすよ
この説明は、ChatGPTで作成しています。
このプロシージャは、Excelで作成した「誤字マスタ」に基づいて、指定したシートのデータをチェックし、登録された誤字が見つかった場合にその部分を赤色にして強調表示します。また、修正後の正しい文字列を誤字があったセルの隣の列に記載する処理も行います。以下は、このプロシージャの動作をわかりやすく説明します。
仕組みの概要
誤字マスタを読み込む
「誤字マスタ」シートに登録された誤字リストを配列として読み込みます。
例: 列Aに誤字、列Bに修正後の正しい文字が記載されています。
対象シートの検索範囲を設定
アクティブなシートの列A(行2以降)を検索対象として設定します。
誤字を検索して赤色に変更
指定した範囲内で誤字マスタにある文字を検索し、見つかった場合は該当部分を赤色にします。
修正後の文字列を記載
誤字が見つかったセルの隣の列に、修正後の文字列を追記します。もし複数の修正後文字列が必要な場合は、「,」で区切って記載します。
マスタ情報を更新
誤字が見つかるたびに「マスタ」の該当行に、発見回数と修正した日付を記録します。
完了メッセージの表示
処理がすべて完了すると、「チェック完了!」というメッセージが表示されます。
特にポイントとなる部分
赤字表示の仕組み
誤字が見つかった箇所では、対象セルの該当部分のフォントカラーを変更して赤色にします。これにより、視覚的に分かりやすくなります。
修正後文字列の記載
誤字が見つかった場合、修正後の文字列をその右側のセルに記録します。同じセルに複数の修正内容を記載する際は、「,」で区切って追加されます。
マスタの更新
誤字が検出されるたびに、対応する「誤字マスタ」のデータも更新します。これにより、何回その誤字が見つかったか、最後にいつ修正したかが記録されます。
使用例
誤字マスタの内容例
列A: 誤字例(例: 「テスト」)
列B: 修正後(例: 「テストケース」)
対象シートのデータ例
列Aに「テスト」が含まれているセルがあれば、それが赤色になり、隣のセルに「テストケース」と記載されます。
実行結果例
列Aの「テスト」が赤色になり、列Bに「テストケース」が追加されます。
補足
このマクロを実行する前に、「誤字マスタ」シートが正しく作成されていることを確認してください。
修正後の文字列が複数記載される場合は、後から編集しやすいように区切り文字に注意してください。
Sub マスタに登録した誤字があったら赤字にして修正後を隣列にだすよ()
Application.ScreenUpdating = False
'マスターを配列に保存する
Dim wsm As Worksheet
Set wsm = Worksheets("誤字マスタ")
Dim lastRow As Long, lastCol As Long
lastRow = wsm.Cells(wsm.Rows.count, 1).End(xlUp).row
lastCol = wsm.Cells(1, wsm.Columns.count).End(xlToLeft).Column
Dim Master As Variant
'マスターのテーブル範囲を設定(見出し含まず)
Master = wsm.Range(wsm.Cells(2, 1), wsm.Cells(lastRow, lastCol)).Value
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Activate
'検索範囲を制限(列1、行2以降)
Dim SearchRange As Range
Set SearchRange = ws.Range("A2:A" & ws.Cells(ws.Rows.count, 1).End(xlUp).row)
Dim FoundCell As Range, FirstCell As Range
Dim i As Long
For i = LBound(Master) To UBound(Master)
Dim i2 As Long
Dim myStr As String
Set FoundCell = SearchRange.Find(What:=Master(i, 1))
If FoundCell Is Nothing Then
GoTo L1
Else
Set FirstCell = FoundCell
End If
'FoundCell.Value = Master(i, 2)
For i2 = 1 To Len(FoundCell.Value)
myStr = Mid(FoundCell.Value, i2, Len(Master(i, 1)))
If myStr Like Master(i, 1) Then
With FoundCell.Characters(Start:=i2, Length:=Len(Master(i, 1))).Font
.ColorIndex = 3
End With
End If
Next i2
If FoundCell.Offset(0, 1) = "" Then
FoundCell.Offset(0, 1) = Master(i, 2)
Else
FoundCell.Offset(0, 1) = FoundCell.Offset(0, 1).Value & "," & Master(i, 2)
End If
Master(i, 3) = Master(i, 3) + 1
Master(i, 4) = Date
Do
Set FoundCell = SearchRange.FindNext(FoundCell)
If FoundCell Is Nothing Then
GoTo L1
ElseIf FoundCell.Address = FirstCell.Address Then
GoTo L1
End If
For i2 = 1 To Len(FoundCell.Value)
myStr = Mid(FoundCell.Value, i2, Len(Master(i, 1)))
If myStr Like Master(i, 1) Then
With FoundCell.Characters(Start:=i2, Length:=Len(Master(i, 1))).Font
.ColorIndex = 3
End With
End If
Next i2
If FoundCell.Offset(0, 1) = "" Then
FoundCell.Offset(0, 1) = Master(i, 2)
Else
FoundCell.Offset(0, 1) = FoundCell.Offset(0, 1).Value & "," & Master(i, 2)
End If
Master(i, 3) = Master(i, 3) + 1
Master(i, 4) = Date
Loop
L1:
Next i
'マスタの上書き
wsm.Range(wsm.Cells(2, 1), wsm.Cells(lastRow, lastCol)).Value = Master
MsgBox "チェック完了!"
Application.ScreenUpdating = True
End Sub
ハッシュタグ
#excel #できること #vba #誤字修正 #自動化 #エクセル #データチェック #フォント色変更 #赤色表示 #データ更新 #配列操作 #範囲設定 #セル検索 #Findメソッド #誤字検索 #修正自動記録 #チェック機能 #マスタ更新 #列操作
英訳版
Highlight Typos and Insert Corrections from Master List
This explanation is generated by ChatGPT.
This procedure scans the data in an Excel sheet based on a "typo master list" and highlights identified typos in red. It also inserts corrected text in the adjacent column. Here's a step-by-step explanation of its workings.
Overview of the Mechanism
Load the Master List
Reads the typo list from the "Typo Master" sheet into an array.
Example: Column A contains typos, and Column B contains corrections.
Set Search Range
Defines the range to search (column A, starting from row 2) in the active sheet.
Find and Highlight Typos
Searches the specified range for typos from the master list and highlights the matching portions in red.
Insert Corrected Text
Adds the corrected text to the cell adjacent to the typo. For multiple corrections, it appends them with a comma separator.
Update Master List
For every detected typo, updates the master list with the occurrence count and the correction date.
Completion Message
Once the operation is complete, displays a message: "Check complete!"
Key Points
Red Highlighting
The procedure modifies the font color of the detected typo, making it visually distinct.
Appending Corrections
Adds corrections to the cell to the right. Multiple corrections are separated by commas.
Master List Updates
Logs the number of times each typo was found and the last correction date in the master list.
Example Use Case
Master List Example
Column A: Typo (e.g., "test")
Column B: Correction (e.g., "test case")
Target Sheet Data Example
If column A contains "test," it will be highlighted in red, and "test case" will appear in the adjacent cell.
Execution Result Example
"test" in column A becomes red, and "test case" is added in column B.
Notes
Ensure the "Typo Master" sheet is properly prepared before running the macro.
Pay attention to the separator when appending multiple corrections for easier editing.
Hashtags
#excel #capabilities #vba #typo_correction #automation #excel_sheet #data_check #font_color_change #highlight_red #data_update #array_operations #range_selection #cell_search #find_method #typo_search #auto_record_corrections #checking_function #master_list_update #column_operations