見出し画像

月給金額の異常値だけを赤字にするよ

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

このプロシージャは、Excelのセルに記載された「月給」に関する数値のうち、異常な値(1〜5桁または7桁以上の数字)を探して、その部分だけを赤字に変更するものです。

仕組みのポイント

  1. 正規表現を使った異常値の判定

    • このコードでは、「正規表現」という方法を使って、テキストの中に特定のパターン(今回の場合は「月給」とその金額)を探しています。特に、*「1〜5桁または7桁以上の数値」*が異常な値とみなされ、それに該当する部分が赤字になります。

    • `Pattern = "月給(\d{1,5}|\d{7,})円"` という部分がそのルールです。

  2. 選択範囲内のセルを処理

    • Excelで選択した範囲のセルを1つずつ調べて、その中に「月給」という文字と指定された桁数の数値が含まれていれば、その文字を赤く変えます。

  3. 画面更新を一時停止

    • プロシージャの最初と最後に `Application.ScreenUpdating = False` と `Application.ScreenUpdating = True` があります。これは、コードの実行中に画面が頻繁に更新されて見えにくくならないように、一時的に画面の更新を止めるためのものです。

具体的な流れ

  1. `CreateObject("VBScript.RegExp")` で正規表現を使うためのオブジェクトを作成します。

  2. `Selection` で、Excelで現在選択されている範囲を取得します。

  3. 各セルの値を確認し、正規表現で「月給」と異常な数値を含む部分を見つけたら、その部分を赤字にします。

  4. 最後に `ScreenUpdating` を再度有効にして、画面の更新を戻します。

この記事のYouTube動画はこちら

この記事のYouTube動画はこちら

Sub 月給金額の異常値だけを赤字にするよ()
    Application.ScreenUpdating = False
    Dim reg As Object
    Set reg = CreateObject("VBScript.RegExp") 'オブジェクト作成
    Dim myRng As Range
    Dim txt As String
    Dim matches, match As Object
    With reg
        .Pattern = "月給(\d{1,5}|\d{7,})円"
        .IgnoreCase = True
        .Global = True
    End With

    For Each myRng In Selection
        txt = myRng.Value
        Set matches = reg.Execute(txt)
        
        If matches.count > 0 Then
            'マッチした文字列の部分だけ赤色にする
            For Each match In matches
                myRng.Characters(match.FirstIndex + 1, match.Length).Font.Color = vbRed
            Next match
        End If
    Next myRng

    Application.ScreenUpdating = True
End Sub

ハッシュタグ

#excel #できること #vba #月給 #異常値 #セルの書式設定 #正規表現 #金額 #色の変更 #赤字 #オートメーション #マクロ #プログラミング初心者 #自動化 #文字列操作 #企業向け #オブジェクト作成 #選択範囲 #スクリーン更新停止 #エクセルマクロ


English Translation

Highlight Only Abnormal Monthly Salary Amounts in Red

This explanation was created using ChatGPT.

This procedure is designed to search for abnormal salary amounts in the selected cells of Excel (specifically 1-5 digit or 7+ digit numbers) and highlight those parts in red.

Key Points of the Process

  1. Using Regular Expressions for Abnormal Value Detection

    • The code uses regular expressions to find specific patterns in the text. In this case, it looks for monthly salary figures, marking those with "1 to 5 digits or 7 digits and above" as abnormal values, which are then highlighted in red.

    • The rule for this is set with the line: `Pattern = "月給(\d{1,5}|\d{7,})円"`.

  2. Processing Each Cell in the Selected Range

    • The code examines each cell within the selected range in Excel. If it contains the word "月給" and matches the specified salary digits, that part of the text will be turned red.

  3. Temporarily Pausing Screen Updates

    • `Application.ScreenUpdating = False` and `Application.ScreenUpdating = True` are used to prevent screen flickering during code execution by temporarily disabling and then re-enabling screen updates.

Step-by-Step Breakdown

  1. It creates an object for using regular expressions with `CreateObject("VBScript.RegExp")`.

  2. It retrieves the currently selected range in Excel via `Selection`.

  3. For each cell, if a part of the text matches the pattern of "月給" followed by an abnormal number, that part of the text is turned red.

  4. Finally, screen updates are restored with `ScreenUpdating = True`.

Watch the corresponding YouTube video here


Hashtags

#excel #capabilities #vba #monthlysalary #abnormalvalues #cellformatting #regex #amounts #colorchange #redtext #automation #macros #beginnerprogramming #autotasks #stringmanipulation #forcompanies #objectcreation #selectionrange #disableupdates #excelmacros

この記事が気に入ったらサポートをしてみませんか?