店舗名の末尾にある店だけを削除するよ
この説明は、ChatGPTで作成しています。
このVBAマクロは、選択したセルの中から、店舗名の末尾に「店」と付いている場合だけ その「店」を削除するプログラムです。たとえば、「田中商店」や「山田店」という文字があった場合、「田中商」と「山田」のように変換します。
以下で、その仕組みを詳しく説明します。
プログラムの仕組み
1. 初めの設定
Application.ScreenUpdating = False
処理中の画面更新を停止 して、処理速度を上げると同時に、画面がチカチカしないようにしています。
2. 正規表現(RegExp)の設定
CreateObject("VBScript.RegExp") を使って、正規表現オブジェクトを作成しています。このオブジェクトを使うことで、文字列の中から特定のパターン(規則)を探し出すことができます。
このコードでは以下のように設定されています:
.Pattern = "店$"
「店」で終わる文字列 を探すパターンです。ここで $ は「末尾」を意味します。.IgnoreCase = True
大文字・小文字を区別せずに検索する設定です(今回の例では影響しません)。.Global = True
文字列全体に対して処理を行います。
3. 選択範囲(セル)のループ処理
For Each myRng In Selection
選択されたセル(範囲)の一つ一つを順番に処理します。各セルの値を取得して正規表現で「店」を削除します:
txt = reg.Replace(txt, "")
ここで、reg.Replace は指定したパターン(末尾の「店」)を空文字に置き換えます。
4. セルに値を戻す
処理した結果を再びセルに反映させます: myRng.Value = txt
5. 処理終了時の画面更新再開
Application.ScreenUpdating = True
最後に画面更新を再開して、正常に処理が終わったことを反映します。
実行する手順
Excelで、処理したい店舗名のリストが入力されているセルを選択します。
このマクロを実行すると、選択したセルの内容が自動的に書き換わり、末尾の「店」が削除されます。
注意点
正規表現を使っているので、末尾が「店」でない文字列には影響を与えません。
セルが空白の場合や、誤って数値を選択した場合も処理はスキップされます。
関連リンク
Sub 店舗名の末尾にある店だけを削除するよ()
Application.ScreenUpdating = False
Dim reg
Set reg = CreateObject("VBScript.RegExp") 'オブジェクト作成
With reg
.Pattern = "店$"
.IgnoreCase = True
.Global = True
End With
On Error Resume Next
Dim myRng As Range
For Each myRng In Selection
Dim txt As String
txt = myRng.Value
txt = reg.Replace(txt, "")
myRng.Value = txt
Next myRng
Application.ScreenUpdating = True
End Sub
ハッシュタグ
#excel #vba #できること #店舗名 #正規表現 #セル操作 #初心者向け #プログラミング #テキスト処理 #マクロ #オートメーション #データクリーンアップ #ループ処理 #エクセル便利機能 #作業効率化 #プログラミング学習 #文字列操作 #条件付き処理 #セル選択
English Translation
Removing "Store" Only from the End of Store Names
This explanation is created with ChatGPT.
This VBA macro removes the word "Store" (or *"店" in Japanese) only if it appears at the end of store names in the selected cells. For example, "Tanaka Store" or "Yamada Store" will become "Tanaka" and "Yamada," respectively.
Here’s how it works:
How the Program Works
1. Initial Setup
Application.ScreenUpdating = False
Stops the screen from refreshing while the macro runs. This speeds up the process and prevents the screen from flickering.
2. Setting Up the Regular Expression (RegExp)
A regular expression object is created with CreateObject("VBScript.RegExp"). This is used to search for and modify text based on specific patterns.
The following configurations are made:
.Pattern = "店$"
Looks for text ending with the word "Store" (or "店"). The $ signifies the end of a string..IgnoreCase = True
Makes the search case-insensitive (though it doesn't matter in this case)..Global = True
Ensures the pattern is applied across the entire text.
3. Looping Through Selected Cells
For Each myRng In Selection
Iterates through each selected cell in the range.The macro retrieves the value of each cell and applies the regex pattern to remove "Store":
txt = reg.Replace(txt, "")
4. Updating the Cell Values
The modified text is then written back to the respective cell: myRng.Value = txt
5. Re-enabling Screen Updates
Finally, Application.ScreenUpdating = True resumes screen updates to reflect the changes.
How to Run It
In Excel, select the cells containing the list of store names you want to process.
Run the macro. It will automatically update the selected cells by removing "Store" from the end of the text.
Notes
Only store names ending with "Store" (or "店") will be modified.
Empty cells or non-text data will be ignored.
Links
Hashtags
#excel #vba #automation #regex #cellprocessing #textcleaning #excelmacros #excelvba #loopingcells #beginnerfriendly #storelistcleanup #productivity #coding #excelautomation #textmanipulation #conditionalprocessing #exceltricks #learningprogramming #stringoperations #excelshortcuts