見出し画像

マスタにあるキーワード番号があったらキーワードに置換するよマスタに検出頻度いれるversion

この説明は、ChatGPTで作成しています。


このマクロは、Excelのシートを使って特定のキーワードを検索・置換しながら、どれだけの頻度で検出されたかを記録する仕組みを持っています。たとえば、データがある「アクティブなシート」と、キーワードや置換する内容が書かれた「マスターシート」を使って作業します。以下で詳しく説明します。


このマクロの動き

  1. 「マスターシート」からデータを取り込む

    • マスターシート という名前のシートに記載されているキーワードリストを取得し、メモリ(配列)に保存します。このデータにはキーワード(番号)、置換後の文字列、検出回数、日付情報が含まれます。

  2. 「アクティブなシート」でキーワードを探す

    • 現在選択されているシート(アクティブシート)のデータから、キーワードが含まれているか検索します。検索範囲は、列1〜5、行2行目以降です。

  3. 検索パターンの切り替え

    • アクティブシートのセルA2に数値が入力されている場合、「番号をキーワードに置き換える」作業を行います。数値でない場合は、「キーワードを番号に置き換える」作業に切り替わります。

  4. キーワードの検索と置換

    • マスターシートのキーワードをアクティブシート内で検索し、対応する置換内容に変えます。

    • 見つかったセルは背景色が青または黒に変更されます。

    • 検索対象が複数回見つかる場合も、1つずつ置き換えます。

  5. 「検出頻度」と「最終更新日」を記録

    • 検出されるたびに、マスターシート内の「検出頻度」カウントを1つ増やし、「最終更新日」をその日の日時に更新します。

  6. 処理完了の通知

    • 全ての作業が終わると、「チェック完了!」 のメッセージが表示されます。


使い方のポイント

  • マスターシートの準備
    マスターシートには以下のようなデータが必要です:

    • 列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
    
    '検索範囲を制限(列15、行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

  1. 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.

  2. 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.

  3. 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."

  4. 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.

  5. 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.

  6. 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

いいなと思ったら応援しよう!