wanna.jp VBAリファレンス
Top > VBA関数リファレンス > ECサイトの商品データ管理を劇的に改善!VBA Trim関数で商品名の余白を完全除去し、検索ヒット率をUPさせる

ECサイトの商品データ管理を劇的に改善!VBA Trim関数で商品名の余白を完全除去し、検索ヒット率をUPさせる

ECサイトを運営されている皆さん、商品名に紛れ込んだ余分なスペースに悩まされていませんか?「iPhone 15」と登録したつもりが「 iPhone 15 」のように前後に半角スペースが入ってしまい、ユーザーが「iPhone」と検索してもヒットしない…。このような問題は、お客様の購入機会を損失するだけでなく、データ管理の手間も増大させます。

本記事では、VBAのTrim関数を使って商品名などの文字列から不要なスペースを効率的に削除する方法をご紹介します。さらに、多くのEC運営者が見落としがちな「全角スペース」の落とし穴とその確実な回避策まで、実務に即したコードとともに詳しく解説します。VBAでデータ品質を高め、ECサイトのパフォーマンスを向上させましょう!

まずは基本!VBAのTrim関数で半角スペースを削除する

VBAのTrim関数は、文字列の先頭と末尾にある半角スペースを除去する非常に便利な関数です。まずは最も基本的な使い方から見ていきましょう。

Sub RemoveHalfWidthSpaceFromProductName_Trim()
    Dim productName As String
    
    ' 商品名の例 (先頭と末尾に半角スペースあり)
    productName = " iPhone 15 "
    Debug.Print "元データ: [" & productName & "]" ' 出力例: 元データ: [ iPhone 15 ]
    
    ' Trim関数で半角スペースを削除
    productName = Trim(productName)
    Debug.Print "Trim後: [" & productName & "]" ' 出力例: Trim後: [iPhone 15]
    
    MsgBox "半角スペース除去後の商品名: " & productName
End Sub

このコードを実行すると、変数productNameに格納された「 iPhone 15 」という文字列の先頭と末尾の半角スペースが削除され、「iPhone 15」となります。非常にシンプルで強力ですね。

【重要】VBA Trimの落とし穴!全角スペースは除去されない

さて、ここで多くのEC運営者が陥りがちな「落とし穴」があります。VBAのTrim関数は、半角スペースのみを対象とします。つまり、全角スペースが含まれている場合、それは除去されません。

この問題を解決するには、Replace関数やWorksheetFunctionを組み合わせる必要があります。具体的な回避策を見ていきましょう。

確実な解決策1: Replace関数で半角・全角スペースを全て除去する

商品名内のあらゆるスペース(半角・全角問わず)を完全に削除したい場合は、Replace関数を使うのが最も確実です。

Sub RemoveAllSpacesFromProductName_Replace()
    Dim productName As String
    
    ' 商品名の例 (半角・全角スペースが混在)
    productName = " iPhone 15 Pro " ' 先頭と末尾に全角スペース、中央に半角スペース
    Debug.Print "元データ: [" & productName & "]" ' 出力例: 元データ: [ iPhone 15 Pro ]
    
    ' 全角スペースを全て削除
    productName = Replace(productName, " ", "") ' " " は全角スペース
    ' 半角スペースを全て削除
    productName = Replace(productName, " ", "") ' " " は半角スペース
    
    Debug.Print "Replace後: [" & productName & "]" ' 出力例: Replace後: [iPhone15Pro]
    MsgBox "半角・全角スペース完全除去後の商品名 (Replace): " & productName
End Sub

このコードでは、まず全角スペースを全て削除し、次に半角スペースを全て削除しています。これにより、「 iPhone 15 Pro 」は「iPhone15Pro」となり、余白が完全に除去されます。

確実な解決策2: 全角スペースを半角に変換してからTrimする

商品名の前後の余白のみを削除し、商品名中の半角スペースは保持したい場合(例:「iPhone 15 Pro」のように)、一度全角スペースを半角スペースに変換してからTrim関数を適用する方法が有効です。

Sub ConvertFullWidthToHalfWidthAndTrim()
    Dim productName As String
    
    ' 商品名の例 (全角スペースを含む)
    productName = " Galaxy S23 Ultra " ' 先頭と末尾に全角スペース、中央に半角スペース
    Debug.Print "元データ: [" & productName & "]" ' 出力例: 元データ: [ Galaxy S23 Ultra ]
    
    ' 全角スペースを半角スペースに変換
    productName = Replace(productName, " ", " ")
    Debug.Print "全角→半角変換後: [" & productName & "]" ' 出力例: 全角→半角変換後: [ Galaxy S23 Ultra ]
    
    ' Trim関数で前後の半角スペースを削除
    productName = Trim(productName)
    Debug.Print "Trim後: [" & productName & "]" ' 出力例: Trim後: [Galaxy S23 Ultra]
    MsgBox "全角変換&Trim後の商品名: " & productName
End Sub

この方法であれば、全角スペースを含む余白も適切に処理され、商品名の「Galaxy S23 Ultra」のように、中央の半角スペースはそのまま残すことができます。

補足: WorksheetFunction.Trimの利用について

Excelのシート関数にはTRIM関数があり、VBAからApplication.WorksheetFunction.Trimとして利用することも可能です。この関数は、VBAのTrim関数と異なり、文字列内の連続する半角スペースを1つにまとめる機能を持っています(例: "A B" → "A B")。しかし、全角スペースに対してはVBAのTrimと同様に効果がありません。全角スペースの除去には、上記で紹介したReplace関数を組み合わせるのが最も確実です。

Sub UseWorksheetFunctionTrim()
    Dim productName As String
    
    ' 連続する半角スペースと全角スペースの例
    productName = " Apple  Watch Series 9 "
    Debug.Print "元データ: [" & productName & "]"
    
    ' まず全角スペースを半角スペースに変換
    productName = Replace(productName, " ", " ")
    Debug.Print "全角→半角変換後: [" & productName & "]" ' 出力例: 全角→半角変換後: [ Apple  Watch Series 9 ]
    
    ' WorksheetFunction.Trimで前後の半角スペースと、連続する半角スペースを処理
    productName = Application.WorksheetFunction.Trim(productName)
    Debug.Print "WorksheetFunction.Trim後: [" & productName & "]" ' 出力例: WorksheetFunction.Trim後: [Apple Watch Series 9]
    MsgBox "WorksheetFunction.Trim処理後の商品名: " & productName
End Sub

このように、WorksheetFunction.Trimも強力ですが、全角スペースに対応するためには前処理としてReplace関数で全角スペースを半角スペースに変換する必要があります。

まとめ:VBAでEC運営のデータ品質を劇的に向上させよう!

本記事では、VBAのTrim関数を基本とし、EC運営で陥りがちな商品名データ内の半角・全角スペース問題の解決策を具体的に解説しました。

  • VBAのTrim関数: 文字列の先頭と末尾の半角スペースを除去します。
  • 落とし穴: Trim関数は全角スペースには効果がありません。
  • 解決策: Replace関数を組み合わせて、全角スペースを削除するか、半角スペースに変換してからTrimすることが重要です。
  • WorksheetFunction.Trim: 半角スペースの連続を一つにしますが、全角スペースには別途Replace処理が必要です。

これらのVBAテクニックをマスターすることで、ECサイトの商品データ品質が向上し、お客様の検索ヒット率や購買体験が格段にアップします。定期的なデータクレンジングにVBAを導入し、EC運営をさらに効率化していきましょう。ぜひ、これらのコードをコピー&ペーストして、皆さんの実務でお役立てください!

VBAでの業務効率化、悩み解決します

「このマクロ、もっと速くならないかな?」「エラーが消えない…」
Access/VBA専門のwanna.jpにご相談ください。

無料相談はこちら