見出し画像

曜日の部分に伏字をいれるよ

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

このVBAプロシージャは、Excelシート内で選択されたセルの中から、曜日が含まれる文字列を見つけ出し、その曜日の部分を「●」に置き換える仕組みになっています。例えば、「月曜日」というテキストが「●曜日」と変わります。

仕組みの説明:

  1. 画面の更新を一時停止
    最初に `Application.ScreenUpdating = False` を使って、処理中に画面がチラつかないようにしています。

  2. 正規表現オブジェクトの作成
    `CreateObject("VBScript.RegExp")` で正規表現を使うためのオブジェクトを作成します。これにより、文字列のパターンマッチングが可能になります。

  3. 正規表現の設定
    `Pattern` で「(月|火|水|木|金|土|日)曜日」というパターンを設定しています。これは「月曜日」から「日曜日」までの文字列に一致するパターンです。さらに、`IgnoreCase = True` で大文字と小文字を区別せず、`Global = True` で全体の文字列に対してパターンを適用します。

  4. セル内のテキストを置き換える
    `For Each myRng In Selection` の部分で、選択された各セルに対して処理を行います。セルの内容を取得し、正規表現を使って「月曜日」などの曜日を「●曜日」に置き換え、その結果を再びセルに書き込みます。

  5. 画面の更新を再開
    最後に `Application.ScreenUpdating = True` を使って、画面の更新を再開し、処理が終わった結果を表示します。

これで、選択範囲の中の曜日が伏字に変わります!

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 = "(月|火|水|木|金|土|日)曜日"
        .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

English Translation

Replace Day of the Week with a Censored Character

This explanation is created using ChatGPT.

This VBA procedure replaces any days of the week in the selected cells with a censored character "●". For example, the text "Monday" will be changed to "●day".

How It Works:

  1. Pause Screen Updating
    The procedure starts with `Application.ScreenUpdating = False` to prevent the screen from flickering during the process.

  2. Create Regular Expression Object
    The code uses `CreateObject("VBScript.RegExp")` to create a regular expression object, enabling pattern matching within text.

  3. Set Up the Regular Expression
    The `Pattern` is set to match any day of the week in Japanese (e.g., "月曜日" for Monday). The `IgnoreCase = True` option makes the matching case-insensitive, and `Global = True` applies the pattern to the entire string.

  4. Replace Text in Each Selected Cell
    The `For Each myRng In Selection` loop iterates over each selected cell. The text from the cell is retrieved, the day of the week is replaced with "●day" using the regular expression, and the updated text is written back to the cell.

  5. Resume Screen Updating
    Finally, `Application.ScreenUpdating = True` is used to resume screen updating and display the results.

This procedure effectively censors the days of the week in the selected range!


Character count: 992


Hashtags:
#excel #vba #できること #正規表現 #オブジェクト #テキスト置換 #文字列操作 #曜日の検索 #セルの選択範囲 #シート操作 #画面更新 #スクリプト解説 #初心者向けVBA #テキスト操作 #セル内テキスト #VBAチュートリアル #Excelマクロ #自動化 #プログラミング #日本語曜日

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