曜日の部分に伏字をいれるよ
この説明は、ChatGPTで作成しています。
このVBAプロシージャは、Excelシート内で選択されたセルの中から、曜日が含まれる文字列を見つけ出し、その曜日の部分を「●」に置き換える仕組みになっています。例えば、「月曜日」というテキストが「●曜日」と変わります。
仕組みの説明:
画面の更新を一時停止
最初に `Application.ScreenUpdating = False` を使って、処理中に画面がチラつかないようにしています。正規表現オブジェクトの作成
`CreateObject("VBScript.RegExp")` で正規表現を使うためのオブジェクトを作成します。これにより、文字列のパターンマッチングが可能になります。正規表現の設定
`Pattern` で「(月|火|水|木|金|土|日)曜日」というパターンを設定しています。これは「月曜日」から「日曜日」までの文字列に一致するパターンです。さらに、`IgnoreCase = True` で大文字と小文字を区別せず、`Global = True` で全体の文字列に対してパターンを適用します。セル内のテキストを置き換える
`For Each myRng In Selection` の部分で、選択された各セルに対して処理を行います。セルの内容を取得し、正規表現を使って「月曜日」などの曜日を「●曜日」に置き換え、その結果を再びセルに書き込みます。画面の更新を再開
最後に `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:
Pause Screen Updating
The procedure starts with `Application.ScreenUpdating = False` to prevent the screen from flickering during the process.Create Regular Expression Object
The code uses `CreateObject("VBScript.RegExp")` to create a regular expression object, enabling pattern matching within text.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.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.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マクロ #自動化 #プログラミング #日本語曜日