見出し画像

ネットスーパーの明細から単価と数量をぬきだすよ

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

このプロシージャは、Excelのシート上に入力された「ネットスーパーの明細」から、商品の単価と数量を自動的に取り出して、隣のセルにそれぞれ表示するものです。以下で、その仕組みを説明していきます。

プログラムの流れ

  1. 画面更新の停止
    最初に `Application.ScreenUpdating = False` という命令で、処理中に画面が更新されないようにします。これは、作業が終わるまで画面のちらつきを抑えて、動作を速くするためです。

  2. 正規表現オブジェクトの作成
    次に、正規表現を使うためのオブジェクトを2つ作成します。1つは単価用、もう1つは数量用です。正規表現とは、特定の文字列パターンを検索するための方法です。

    • 単価を探す正規表現のパターンは `\d+(?=円 ×)` です。これは「円 ×」という表記の前にある数字を探します。

    • 数量を探す正規表現のパターンは `\d+(?=個 =)` です。これは「個 =」という表記の前にある数字を探します。

  3. セルの値をチェック
    選択されている範囲(`Selection`)の中にある各セルの内容を1つずつ調べていきます。セルの中にあるテキスト(明細)を読み取り、正規表現で単価と数量を探します。

  4. 抽出した値を隣のセルに入力
    見つけた単価と数量を、それぞれ隣のセルに自動的に書き込んでいきます。1つ目の正規表現で単価を探し、その結果を1列右隣のセルに。次に、数量を探し、その結果を2列右隣のセルに入力します。

  5. 画面更新の再開
    全ての作業が終わったら、`Application.ScreenUpdating = True` で画面更新を再開します。

まとめ

このプログラムは、Excelに入力された明細から自動的に「単価」と「数量」を見つけ出し、それを隣のセルに表示してくれる便利なツールです。これを使えば、手動で価格や個数を入力する手間を大幅に減らすことができます。


Sub ネットスーパーの明細から単価と数量をぬきだすよ()
    Application.ScreenUpdating = False
    Dim regTan As Object, regCon As Object
    Set regTan = CreateObject("VBScript.RegExp") '単価用オブジェクト作成
    Set regCon = CreateObject("VBScript.RegExp") '数量用のオブジェクト作成
    Dim myRng As Range
    Dim txt, txt2 As String
    Dim match, match2 As Object
    Dim i, i2 As Long
    '単価パターンの正規表現
    With regTan
        .Pattern = "\d+(?=円 ×)"
        .IgnoreCase = True
        .Global = True
    End With
    '数量用の正規表現パターン
    With regCon
        .Pattern = "\d+(?=個 =)"
        .IgnoreCase = True
        .Global = True
    End With
    
    On Error Resume Next
    For Each myRng In Selection
        txt = myRng.Value
        Set match = regTan.Execute(txt)
            For i = 1 To match.count
                myRng.Offset(0, i).Value = regTan.Replace(match(i - 1).Value, "")
            Next i
        Set match2 = regCon.Execute(txt)
            For i2 = 1 To match2.count
                myRng.Offset(0, i2 + 1).Value = regCon.Replace(match2(i2 - 1).Value, "")
            Next i2
    Next myRng
    
    Application.ScreenUpdating = True
End Sub

キーワード

#excel #できること #vba #ネットスーパー #明細抽出 #単価 #数量 #正規表現 #自動化 #データ抽出 #作業効率化 #セル操作 #範囲選択 #オフセット #スクリーン更新 #パターン検索 #VBScript #Rangeオブジェクト #商品明細 #VBAマクロ


English Translation

Extract Unit Price and Quantity from Online Supermarket Details

This explanation is created using ChatGPT.

This procedure automatically extracts the unit price and quantity from "online supermarket details" entered in an Excel sheet and displays them in the adjacent cells. Below is an easy-to-understand explanation of how it works.

Program Flow

  1. Screen Update Suspension
    First, the command `Application.ScreenUpdating = False` prevents the screen from updating during processing. This reduces flickering and speeds up the process until all operations are complete.

  2. Creating Regular Expression Objects
    Next, two objects for regular expressions are created: one for unit price and one for quantity. Regular expressions are used to search for specific patterns in text.

    • The regular expression pattern to find the unit price is `\d+(?=円 ×)`, which looks for numbers preceding "円 ×".

    • The regular expression pattern to find the quantity is `\d+(?=個 =)`, which looks for numbers preceding "個 =".

  3. Checking Cell Values
    The program checks the contents of each cell in the selected range (`Selection`). It reads the text (details) in the cell and uses regular expressions to search for unit price and quantity.

  4. Extracted Values Input into Adjacent Cells
    The found unit price and quantity are automatically written into adjacent cells. The first regular expression finds the unit price and places it in the cell one column to the right. Then, the quantity is found and placed two columns to the right.

  5. Screen Update Resumption
    After all operations are complete, the screen is updated again with `Application.ScreenUpdating = True`.

Summary

This program is a handy tool that automatically detects and displays the "unit price" and "quantity" from the details entered in Excel. Using this macro can significantly reduce the time spent manually entering prices and quantities.



Keywords

#excel #capabilities #vba #onlineSupermarket #detailsExtraction #unitPrice #quantity #regex #automation #dataExtraction #workEfficiency #cellOperations #rangeSelection #offset #screenUpdating #patternMatching #VBScript #RangeObject #itemDetails #VBAMacro

この記事が気に入ったらサポートをしてみませんか?