マスタにあるキーワード番号があったらキーワードに置換するよマスタに検出頻度いれるversion
この説明は、ChatGPTで作成しています。
このマクロは、Excelのシートを使って特定のキーワードを検索・置換しながら、どれだけの頻度で検出されたかを記録する仕組みを持っています。たとえば、データがある「アクティブなシート」と、キーワードや置換する内容が書かれた「マスターシート」を使って作業します。以下で詳しく説明します。
このマクロの動き
「マスターシート」からデータを取り込む
マスターシート という名前のシートに記載されているキーワードリストを取得し、メモリ(配列)に保存します。このデータにはキーワード(番号)、置換後の文字列、検出回数、日付情報が含まれます。
「アクティブなシート」でキーワードを探す
現在選択されているシート(アクティブシート)のデータから、キーワードが含まれているか検索します。検索範囲は、列1〜5、行2行目以降です。
検索パターンの切り替え
アクティブシートのセルA2に数値が入力されている場合、「番号をキーワードに置き換える」作業を行います。数値でない場合は、「キーワードを番号に置き換える」作業に切り替わります。
キーワードの検索と置換
マスターシートのキーワードをアクティブシート内で検索し、対応する置換内容に変えます。
見つかったセルは背景色が青または黒に変更されます。
検索対象が複数回見つかる場合も、1つずつ置き換えます。
「検出頻度」と「最終更新日」を記録
検出されるたびに、マスターシート内の「検出頻度」カウントを1つ増やし、「最終更新日」をその日の日時に更新します。
処理完了の通知
全ての作業が終わると、「チェック完了!」 のメッセージが表示されます。
使い方のポイント
マスターシートの準備
マスターシートには以下のようなデータが必要です:列A: キーワード番号
列B: 置換する文字列
列C: 検出頻度(初期値は0)
列D: 最終更新日
アクティブシートの準備
データが入力されているシートをアクティブにしてからマクロを実行します。背景色で処理済みを確認
キーワードを置換したセルは、背景色で視覚的にわかるようになります。
注意点
検索範囲は列AからEの範囲に限定されます。この範囲外のデータは置換されません。
マクロを実行する前に必ずデータのバックアップを取るようにしてください。
アクティブシートが正しいシートになっているか確認してください。
関連リンク
Sub マスタにあるキーワード番号があったらキーワードに置換するよマスタに検出頻度いれるversion()
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~5、行2以降)
Dim SearchRange As Range
Set SearchRange = ws.Range("A2:E" & ws.Cells(ws.Rows.count, 1).End(xlUp).row)
' A2セルの値でパターンを切り替える
Dim isPattern1 As Boolean
If IsNumeric(ws.Range("A2").Value) Then
isPattern1 = True
Else
isPattern1 = False
End If
Dim FoundCell As Range, FirstCell As Range
Dim i As Long
For i = LBound(Master) To UBound(Master)
If isPattern1 Then
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)
FoundCell.Interior.Color = vbBlue
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
FoundCell.Value = Master(i, 2)
FoundCell.Interior.Color = vbBlue
Master(i, 3) = Master(i, 3) + 1
Master(i, 4) = Date
Loop
Else
Set FoundCell = SearchRange.Find(What:=Master(i, 2))
If FoundCell Is Nothing Then
GoTo L1
Else
Set FirstCell = FoundCell
End If
FoundCell.Value = Master(i, 1)
FoundCell.Interior.Color = vbBlack
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
FoundCell.Value = Master(i, 1)
FoundCell.Interior.Color = vbBlack
Master(i, 3) = Master(i, 3) + 1
Master(i, 4) = Date
Loop
End If
L1:
Next i
'マスタの上書き
wsm.Range(wsm.Cells(2, 1), wsm.Cells(lastRow, lastCol)).Value = Master
MsgBox "チェック完了!"
Application.ScreenUpdating = True
End Sub
関連キーワード
#excel #vba #できること #マクロ #自動化 #エクセル #プログラミング初心者 #キーワード置換 #セル検索 #アクティブシート #マスターシート #配列操作 #条件分岐 #最終更新日 #検索パターン #データ操作 #背景色変更 #効率化 #データ検出
英語版の説明
Replace Keywords with Master Data and Update Frequency
This explanation is created by ChatGPT.
This macro uses Excel to find and replace specific keywords while recording the frequency of detections in a "Master" sheet. For example, it operates with an "active sheet" containing data and a "Master sheet" listing keywords and replacement information. Below is a detailed explanation:
How the Macro Works
Load Data from the Master Sheet
The macro retrieves the keyword list from the Master sheet and stores it in memory (as an array). This data includes keywords (numbers), replacement strings, detection counts, and date information.
Search the Active Sheet
The macro scans the active sheet (currently selected sheet) for data containing the keywords. The search range is limited to columns 1 to 5 and starts from row 2.
Switch Search Patterns
If the value in cell A2 of the active sheet is numeric, the macro replaces "numbers with keywords." If not, it switches to replacing "keywords with numbers."
Find and Replace Keywords
For each keyword in the master list, the macro searches the active sheet and replaces matches with the corresponding replacement value.
Modified cells are marked with a blue or black background color.
The macro handles multiple occurrences of the same keyword by replacing them one at a time.
Update Frequency and Last Update Date
Every time a match is found, the macro increments the "detection count" and updates the "last update date" in the Master sheet.
Completion Notification
When the process is finished, a message box displays "Check Complete!" to notify the user.
Usage Tips
Prepare the Master Sheet
The Master sheet must contain:Column A: Keyword numbers
Column B: Replacement strings
Column C: Detection count (initially set to 0)
Column D: Last update date
Set the Active Sheet
Ensure the correct sheet is active before running the macro.Visual Confirmation with Cell Background
Modified cells are highlighted with a background color for clarity.
Precautions
The search range is limited to columns A through E. Data outside this range will not be replaced.
Always back up your data before running the macro.
Ensure the active sheet is the correct one before execution.
Related Links
Related Keywords
#excel #vba #automation #macros #keywordreplacement #activesheet #mastersheet #dataanalysis #backgroundcolor #searchandreplace #detectioncount #lastupdatedate #excelmacros #programmingtips #dataprocessing #conditionalprocessing #bluehighlight #blackhighlight #efficiency #datadetection