見出し画像

金額の下限上限をそれぞれ伏字にするよ

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

このマクロ「金額の下限上限をそれぞれ伏字にするよ」は、選択したセルに書かれている*「〇円~〇円」*という表記を探して、その金額部分を伏字に変換してくれる仕組みです。以下では、このマクロの動きについて、わかりやすく説明します。

仕組み

  1. 画面の更新を一時停止
    マクロの最初で、Application.ScreenUpdating = False を使って、処理中に画面がチラチラしないようにしています。これによって処理が速くなる効果もあります。

  2. 正規表現オブジェクトを作成
    次に、CreateObject("VBScript.RegExp") というコードで、正規表現を使えるオブジェクトを作成しています。正規表現とは、特定のパターンをもとに文字列を探したり、置き換えたりする仕組みです。

  3. パターンの設定
    作成した正規表現オブジェクトに、「〇円~〇円」 の形を探すためのパターンを設定します。この場合は、"\d+円~\d+円" というパターンを使っています。「\d+」 は、1桁以上の数字を表しています。

  4. 選択範囲内のセルを1つずつ処理
    For Each myRng In Selection で、選択したセル一つ一つに対して処理を行います。それぞれのセルの内容を一旦変数txtに取り出し、正規表現を使って*「●円~●円」* に置き換えています。

  5. セルの内容を更新
    置き換えた内容を再びセルに戻し、これを選択範囲内の全てのセルに対して繰り返します。

  6. 画面更新を再開
    最後に、Application.ScreenUpdating = True で画面の更新を再開し、処理が終わったことをユーザーに表示します。

実際に使うとき

このマクロは、選択したセルに「5000円~10000円」のような金額範囲が書かれている場合、それを「●円~●円」という形に自動で伏字に変えてくれます。レポートや資料などで、金額を伏せたいときに便利です。

Sub 金額の下限上限をそれぞれ伏字にするよ()
    Application.ScreenUpdating = False
    Dim reg
    Set reg = CreateObject("VBScript.RegExp")   'オブジェクト作成
    Dim myRng As Range
    Dim txt As String
    Dim i As Long
    With reg
        .Pattern = "\d+円~\d+円"
        .IgnoreCase = True
        .Global = True
    End With
    On Error Resume Next
    For Each myRng In Selection
            txt = myRng.Value
            txt = reg.Replace(txt, "●円~●円")
            myRng.Value = txt
    Next myRng
    Application.ScreenUpdating = True
End Sub


キーワード

#excel #vba #できること #マクロ #正規表現 #伏字 #金額変換 #自動化 #範囲選択 #エクセル操作 #テキスト置換 #オフィスワーク #データ処理 #レポート作成 #簡単操作 #初心者向け #業務効率化 #円表示 #パターンマッチング #条件置換


English Translation

Masking Upper and Lower Price Limits

This explanation was created using ChatGPT.

The macro "Masking Upper and Lower Price Limits" is designed to search for text in the format of "XX yen to YY yen" within selected cells and replace the numeric parts with masked characters. Below is a simple explanation of how this macro works.

How It Works

  1. Temporarily Stopping Screen Updating
    The macro starts by setting Application.ScreenUpdating = False to prevent screen flicker during the process. This also helps speed up the operation.

  2. Creating a Regular Expression Object
    Next, it uses CreateObject("VBScript.RegExp") to create an object that allows using regular expressions. Regular expressions are a tool used to search and replace text based on a specific pattern.

  3. Defining the Pattern
    A pattern is then set for the regular expression object to search for text in the form "XX yen to YY yen". In this case, the pattern is "\d+円~\d+円", where "\d+" represents one or more digits.

  4. Processing Each Selected Cell
    Using For Each myRng In Selection, the macro processes each selected cell one by one. The content of each cell is stored in the variable txt, where the regular expression is applied to replace the numeric parts with "● yen to ● yen".

  5. Updating the Cell Values
    The replaced text is then placed back into the cell, repeating this process for all selected cells.

  6. Resuming Screen Updates
    Finally, Application.ScreenUpdating = True resumes screen updates to show the changes to the user.

Usage

This macro is handy for situations where you need to mask price ranges like "5000 yen to 10000 yen" in selected cells, automatically converting it to "● yen to ● yen". It’s useful when you need to hide sensitive pricing information in reports or documents.


Keywords

#excel #vba #automation #masking #priceconversion #regex #macro #range_selection #office_work #data_processing #replace_text #beginner_friendly #efficiency_boost #yen_format #pattern_matching #conditional_replace #currency_masking #text_transformation #worksheet_operations #report_creation

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