見出し画像

よくみる記号などがあったらアンダーバーにするよ

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

このVBAプロシージャ「よくみる記号などがあったらアンダーバーにするよ」は、Excelのセルに含まれる特定の記号を、すべて「」(アンダーバー)に置き換えるものです。たとえば、◎や★といったよく見る記号があれば、その記号が「」に変わります。

プロシージャの仕組み

  1. 画面更新を停止
    最初に `Application.ScreenUpdating = False` を使って、作業中の画面のチラつきを防ぎます。これにより、処理速度も少し向上します。

  2. 正規表現オブジェクトを作成
    `CreateObject("VBScript.RegExp")` というコマンドを使って、「正規表現」というパターン検索用のオブジェクトを作ります。これは、特定の文字や記号を効率よく見つけて置き換えるための便利な機能です。

  3. 範囲内のセルに対して処理
    `For Each myRng In Selection` の部分で、選択されているセルの1つ1つに対して、順番に記号を探して置き換えていきます。

  4. 記号をアンダーバーに置き換え
    `txt = reg.Replace(txt, "")` で、正規表現で見つかった記号をすべて「」に変換します。

  5. セルの内容を更新
    置き換えた結果を `myRng.Value = txt` でセルに戻しています。

  6. 画面更新を再開
    最後に、`Application.ScreenUpdating = True` で画面の更新を再開して、処理が完了したことがわかるようにします。

まとめ

このVBAコードは、選択した範囲のセルに含まれている特定の記号をアンダーバーに置き換えるシンプルなものです。特定のルールに従って、素早くセルの内容を整理したいときに便利です。


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

関連キーワード

#excel #できること #vba #アンダーバー #置き換え #記号 #文字置換 #正規表現 #セル操作 #オブジェクト作成 #エラーハンドリング #画面更新 #パターンマッチング #文字列操作 #Rangeオブジェクト #文字修正 #コード解説 #選択範囲 #セルの値 #Excelマクロ


English Translation:

Replacing Common Symbols with Underscores

This explanation was created using ChatGPT.

This VBA procedure, Replacing Common Symbols with Underscores, is designed to replace specific symbols in the selected cells of an Excel sheet with underscores "_". For example, if a symbol like "◎" or "★" is found, it will be replaced with an underscore.

How the Procedure Works:

  1. Disabling Screen Updates:
    The procedure begins with `Application.ScreenUpdating = False`, which prevents screen flickering during the process and improves speed.

  2. Creating a Regular Expression Object:
    The `CreateObject("VBScript.RegExp")` command is used to create a "regular expression" object, which helps efficiently find and replace certain symbols.

  3. Processing Each Selected Cell:
    The loop `For Each myRng In Selection` iterates through each selected cell and processes them one by one.

  4. Replacing Symbols with Underscores:
    The line `txt = reg.Replace(txt, "_")` uses the regular expression to replace all the targeted symbols with underscores.

  5. Updating Cell Content:
    The updated content is placed back into the cell with `myRng.Value = txt`.

  6. Resuming Screen Updates:
    Finally, `Application.ScreenUpdating = True` is called to resume screen updates, signaling the end of the process.

Summary:

This VBA code efficiently replaces specified symbols in the selected range of cells with underscores. It's useful for quickly cleaning up or formatting cell content based on predefined symbol rules.


Related Keywords

#excel #whatyoucando #vba #underscore #replace #symbols #findandreplace #regex #celloperations #objectcreation #errorhandling #screenupdating #patternmatching #textprocessing #rangeobject #stringmanipulation #codeexplanation #selection #cellvalues #excelmacro

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