見出し画像

HTML参照半角ハイフン表記を修正するよ

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

このVBAプロシージャ「HTML参照半角ハイフン表記を修正するよ」は、Excelで選択されている範囲のセル内にある特定の文字コード「‐」を半角ハイフン「-*」に置き換えるものです。ウェブからデータをコピーした際などに、特殊なコードがExcelに貼り付けられてしまったときに活用できます。

仕組みの説明

  1. 画面更新を停止
    最初に Application.ScreenUpdating = False で画面更新を一時的に停止し、処理を高速化しています。

  2. 正規表現オブジェクトの作成
    次に、VBScript.RegExp という「正規表現」を扱うオブジェクトを作成します。このオブジェクトは、指定した文字列やパターンに一致するテキストを簡単に探したり置き換えたりできる便利な機能です。

  3. 置換の準備
    作成した reg オブジェクトに対し、`Pattern` プロパティを使って「‐」という特定の文字コードを設定しています。このコードがセル内に含まれている場合にのみ動作し、IgnoreCase(大文字小文字無視)と Global(全体置換)も有効にしています。

  4. 選択範囲内のセルを1つずつ処理
    For Each を使い、選択範囲内のすべてのセルについて、次の手順を実行します。

    • セルの値を txt に代入し、その中で「‐」が含まれているか確認。

    • reg.Replace(txt, "-") で「‐」を「-*」に置き換え、再びセルに戻します。

  5. 画面更新の再開
    処理が完了したら、Application.ScreenUpdating = True で画面更新を再開します。

このプロシージャが役立つ場面

例えば、ウェブサイトからデータをコピーしてExcelに貼り付けたとき、意図しない文字コードが含まれてしまうことがあります。このプロシージャを使うことで、特定の文字コードを一括で修正し、表記をきれいに整えることができます。


Sub HTML参照半角ハイフン表記を修正するよ()
    Application.ScreenUpdating = False
    Dim reg
    Set reg = CreateObject("VBScript.RegExp")   'オブジェクト作成
    Dim myRng As Range
    Dim txt As String
    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 #エクセル自動化 #正規表現 #文字コード修正 #セル置換 #ウェブデータ処理 #半角ハイフン #データ整形 #スクリプト #マクロ #テキスト置換 #セル操作 #文字列操作 #業務効率化 #選択範囲 #正規表現オブジェクト #セル範囲 #セル内容置換


English Translation

HTML Reference Convert to Half-Width Hyphen

This explanation was created with ChatGPT.

This VBA procedure named HTML参照半角ハイフン表記を修正するよ is designed to replace a specific character code “‐” with a standard half-width hyphen "-" across all selected cells in Excel. This is particularly useful if, for instance, special character codes are pasted into Excel from web sources.

How it Works

  1. Disabling Screen Updates
    The procedure starts by setting Application.ScreenUpdating = False to temporarily pause screen updating, helping improve processing speed.

  2. Creating the Regular Expression Object
    Then, it creates an object with VBScript.RegExp, which is specifically designed for working with text patterns, allowing easy finding and replacing of specific patterns.

  3. Setting the Replacement Pattern
    Next, the Pattern property of the reg object is set to target “‐” specifically, working only if this character code is found. The properties IgnoreCase and Global are also set to enable case-insensitive and global replacements, respectively.

  4. Looping through Each Cell in the Selection
    Using For Each, the procedure examines every cell in the selected range:

    • The cell’s text is assigned to txt, checking for the specified character code.

    • reg.Replace(txt, "-") then replaces “‐” with "-", and returns the value to the cell.

  5. Re-enabling Screen Updates
    Finally, Application.ScreenUpdating = True restores screen updating.

Situations for Using This Procedure

When copying data from websites, unintended character codes may sometimes appear. This procedure standardizes these into a more visually uniform presentation.


Keywords

#excel #whatyoucando #vba #excelautomation #regex #characterrepair #cellreplace #webdataprocessing #halfwidthhyphen #datacleaning #scripting #macro #textreplace #cellmanipulation #textmanipulation #efficiency #selectionrange #regexpobject #cellrange #cellcontentreplace

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