見出し画像

全角スラッシュで囲まれた文章を隣列にだすよ

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

このVBAコードは、全角スラッシュ (/と\) で囲まれたテキストを見つけ、そのテキストを隣の列に表示するためのものです。

仕組みの説明

  1. 画面更新の停止:

    • 最初に `Application.ScreenUpdating = False` とすることで、処理中に画面がチラつくのを防ぎます。

  2. 正規表現オブジェクトの作成:

    • `CreateObject("VBScript.RegExp")` で、正規表現を使えるようにします。このオブジェクトは、特定のパターンにマッチする文字列を探すのに役立ちます。

  3. 正規表現の設定:

    • `.Pattern = "/([\s\S]*?)\"` の部分で、**/と\**で囲まれた部分を探すようにパターンを設定しています。

  4. セルのループ処理:

    • `For Each myRng In Selection` で、選択したセル範囲の各セルに対して処理を行います。

  5. マッチしたテキストを隣の列に表示:

    • `If match.count > 0 Then` で、見つかった場合、隣の列 (`Offset(0, 1)`) にそのテキストを出力します。

  6. 画面更新の再開:

    • `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
    Dim match As Object
    With reg
        .Pattern = "/([\s\S]*?)\"
        .IgnoreCase = True
        .Global = True
    End With
    On Error Resume Next
    For Each myRng In Selection
        txt = myRng.Value
        Set match = reg.Execute(txt)
        If match.count > 0 Then
            myRng.Offset(0, 1).Value = match(0).Value ' マッチしたテキストを隣の列に出力
        End If
    Next myRng
    Application.ScreenUpdating = True
End Sub

Excel VBA リファレンス | Microsoft Learn
この記事のYouTube動画はこちら

キーワードハッシュタグ

#excel #できること #vba #正規表現 #隣の列にコピー #スラッシュで囲む #セル操作 #マッチング #オブジェクト #テキスト抽出 #初心者向け #スクリプト解説 #ループ処理 #エクセルVBA #データ処理 #文字列操作 #マクロ #VBScript #条件処理 #プログラミング入門


Extracting Text Surrounded by Full-width Slashes to the Adjacent Column

This explanation is created using ChatGPT.

This VBA code is designed to identify text surrounded by full-width slashes (/ and \) and display the identified text in the adjacent column.

Explanation of the Mechanism

  1. Stopping Screen Updates:

    • The line `Application.ScreenUpdating = False` prevents screen flickering during the code execution.

  2. Creating the Regular Expression Object:

    • The line `CreateObject("VBScript.RegExp")` allows the use of regular expressions, which are helpful for finding text that matches a specific pattern.

  3. Setting Up the Regular Expression:

    • The `.Pattern = "/([\s\S]*?)\"` sets up the pattern to look for text surrounded by full-width slashes (/ and \).

  4. Looping Through Each Cell:

    • The `For Each myRng In Selection` loop iterates through each cell in the selected range.

  5. Displaying the Matched Text in the Adjacent Column:

    • If the pattern is matched (`If match.count > 0 Then`), the identified text is output to the adjacent cell (`Offset(0, 1)`).

  6. Resuming Screen Updates:

    • The `Application.ScreenUpdating = True` line resumes screen updates after the code finishes execution.

For example, if a cell contains the text "今日は/楽しい/一日です" (Today is a /fun/ day), the word "楽しい" (fun) would be displayed in the adjacent cell.


Excel VBA Reference | Microsoft Learn
Watch the corresponding YouTube video here

Keyword Hashtags

#excel #vba #whatyoucando #regex #copytoadjacentcolumn #surroundwithslashes #celloperation #matching #object #textextraction #forbeginners #scriptguide #loopoperation #excelVBA #dataprocessing #stringoperation #macro #VBScript #conditionalprocessing #programmingbasics

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