Rakuten SKUプロジェクト「select.csv」変換ツール
弊社でも Rakuten の SKUプロジェクト が間もなく始まることを受け、関連する各システムの変更作業を急いで行っています。
このプロジェクトの影響を最も受ける部分の一つが、CSVファイルを使用した商品登録プロセスです。
これまで、商品情報を登録する際には「item.csv」と「select.csv」の2種類のファイルを使用していましたが、これからは「normal-item」という形式に統一する必要があります。
「normal-item」形式では、商品の情報を以下の3つの行で構成します。
1、商品レベル行
2、商品オプションレベル行
3、SKUレベル行
特に注意が必要なのは、「商品オプションレベル行」の部分で、これまでの「select.csv」ファイルの内容を1商品につき1行の形式に変換する作業が必要です。
この変換作業を支援するために、簡単なツールを作成しました。
このツールは、必要な方が下記のURLからダウンロードできます。
使用方法は非常に簡単で、「入力」シートに「select.csv」の内容を貼り付け、実行ボタンを押すだけです。
そうすると、「出力」シートに変換されたデータが生成されます。
このツールは試験的に作成したもので、シンプルな機能しか備えていません。
※マクロのブロックは、解除してからご使用ください
「select.csv」変換ツール
使用VBAコード
Sub Copyandplace()
Dim 入力シート As Worksheet, 出力シート As Worksheet
Dim 入力最終行 As Long, 出力最終行 As Long, r As Long, c As Long
Dim 出力先列 As Long
Dim 検索値 As String
' シートの設定
Set 入力シート = ThisWorkbook.Sheets("入力")
Set 出力シート = ThisWorkbook.Sheets("出力")
' 最終行の取得
入力最終行 = 入力シート.Cells(入力シート.Rows.Count, "B").End(xlUp).Row
出力最終行 = 出力シート.Cells(出力シート.Rows.Count, "B").End(xlUp).Row
' 入力シートのデータを走査
For r = 2 To 入力最終行
検索値 = 入力シート.Cells(r, 2).Value
出力先列 = 5 ' E列から開始
' 出力シートで同じB列の値を検索
For c = 2 To 出力最終行
If 出力シート.Cells(c, 2).Value = 検索値 Then
' 空いている列を探す
While Not IsEmpty(出力シート.Cells(c, 出力先列))
出力先列 = 出力先列 + 1
Wend
' 値をコピー
出力シート.Cells(c, 出力先列).Value = 入力シート.Cells(r, 5).Value
Exit For
End If
Next c
' 新しい値の場合、新しい行に追加
If c > 出力最終行 Then
出力最終行 = 出力最終行 + 1
出力シート.Cells(出力最終行, 2).Value = 検索値
出力シート.Cells(出力最終行, 5).Value = 入力シート.Cells(r, 5).Value
End If
Next r
End Sub