販売王の商品登録を外部データからインポートします。
最初に行う商品登録のデータ入力を効率アップさせる方法になります。
データ入力に非常に時間が掛かる販売管理ソフトの難点の解決策です。
こんにちは、じゅんぱ店長(@junpa33)です。
今回の内容は、販売商品の商品データ(書誌データ)を販売王にインポート可能なファイルとして作成することです。
それには、先回作成したマクロ有効ブック「書誌データ抽出.xlsm」で書いたマクロも、この記事で作成するマクロの部品として利用することになります。
今回の記事によって、販売王への販売商品データ登録が効率よく行えるようになり、延いては、伝票作成の業務時間を大幅に短縮できるようになります。
そして後々さらに、販売王の販売伝票(売上伝票、納品書、請求書)の一括データ入力・作成につなげていくことも出来ます。
販売伝票作成の記事編成
コンテンツ
Web上の商品情報を販売王に取り込むためのコンセプト
先回の「書誌データ抽出.xlsm」を、今回作成するVBAコードのパーツとして利用します。
そして加えて、販売王の商品登録のためには、それ以外の必要な情報も付け加えていきます。
最終的に、
販売王の商品登録に必要となるデータを揃えた上で、エクセルシートに転記してCSVデータ化します。
CSVデータ化した商品登録情報は、販売王の「外部テキストデータ入力機能」で販売王内に取り込むことが出来ます。
この様にすれば、Webサイトにある販売商品についてのデータ(書誌データ)を、販売王の商品データにすることができます。
販売王へ取り込む商品登録CSVデータを作成
以下に説明します手順でコード作成を進めてください。
1っ1つ入力していた商品登録の大変な作業から解放されて、商品の ” まとめて登録 ” の便利さを味わえるようになります。
販売王用のCSVデータファイルを作成する手順
販売王用のCSVデータファイルを作成する手順は、以下の7つのステップで進めて行きます。
①新規のエクセルBOOKを作成します
新しいエクセルBOOKのシート名を変更します。
新しいエクセルBOOKを開いてシート名を
Sheet1 を 「操作ボタン」
Sheet2 を 「貼り付け」
Sheet3 を 「作業シート」
Sheet4 を 「商品CSV作成」
とします。
Moduleは全部で4つ必要です。
VBAの起動方法VBEの立ち上げ方法はこちらです。
エクセルVBAコードの保存のため、マクロ有効BOOKで保存してください。
BOOK名は「販売データ入力.xlsm」として,保存場所については、「販売王入力」というフォルダを作ってその中に入れてください。
②保存フォルダのデザインを説明します。
このソフト「販売データ入力.xlsm」についてのファイル配置を説明します
このソフトで利用するフォルダやファイルは設置する場所を決めていますので注意してください。
販売王で登録した基本情報を保存したファイルや作成した外部データCSVを保存するフォルダのファイルツリーはこのようになります。
「書誌データ入力」フォルダ
「販売王入力」フォルダ内に
「書誌データ入力」フォルダを作って、先回作成した「書誌データ抽出.xlsm」を入れてください。
「区分登録」フォルダを作って「商品区分登録.CSV」を保存します。
このCSVデータは販売王で区分登録を行った「商品区分1」のデータをCSV形式のエクスポートで「商品区分録.CSV」として保存します。
データのエクスポートの方法は
販売王のツールタブから「テキストデータ出力」で表示される窓の「出力形式名称」のプルダウンメニューで「区分」を選択します。
下の「区分種別」で「商品区分1」を選択してください。
出力ファイル名を「商品区分登録」で保存先を「区分登録」フォルダにしてください。
「販売王商品登録CSV」フォルダ
「販売王商品登録CSV」フォルダは、これからエクセルVBAで作成する商品登録のCSVデータを保存する用のフォルダです。
保存時のファイル名は「商品登録_○○年月日-保存時時分」となります。
○○は「商品区分1」で登録した区分名です。
同じファイルでも保存時の時分が変われば別ファイルとして保存されます。
③「書誌データ抽出.xlsm」で作成したプロシージャーの起動コードを記述する
これら以降は「販売データ入力.xlsm」のModuleへVBAコードを記述していきます。
まずModule1では、「書誌データ抽出.xlsm」にあるプロシージャーを呼び出し、起動するコードを記述します。
Sub 書誌データNOCS入手()
Workbooks.Open ThisWorkbook.Path & _
"\書誌データ入力\書誌データ抽出.xlsm"
Workbooks("販売データ入力.xlsm").Activate
Application.Run "書誌データ抽出.xlsm!NOCSデータ登録"
Workbooks("書誌データ抽出.xlsm").Close False
End Sub
Sub 書誌データ出版書誌ME入手()
Workbooks.Open ThisWorkbook.Path & _
"\書誌データ入力\書誌データ抽出.xlsm"
Workbooks("販売データ入力.xlsm").Activate
Application.Run "書誌データ抽出.xlsm!出版書誌データ登録Chrome"
Workbooks("書誌データ抽出.xlsm").Close False
End Sub
プロシージャーを実行すると、「販売データ入力.xlsm」の「作業シート」に抽出したデータが入力さています。
④追加で付け加える商品登録情報を要求するVBAコードの作成
次に、Module2に販売王入力用で更に必要な、追加の情報を要求するVBAコードを作成します。
同時に入力用のデータ表の形を整えていきます。
Module1で入手したWebからの商品データと今回入手が必要な3種類の情報が、販売王への入力が必要な最小限のデータ数となります。
INPUTBOX(入力窓)を使用して追加で必要な3項目のデータ入力を求めます。
「商品登録ID番号の開始番号」、「商品区分(1)」・「商品区分(2)」のコード番号をデータ入力してもらいます。
ちなみに販売王の要求データ数はすべてで60項目になります。
この中で必須項目ではない項目も多くあります。ここでは最低限の必要項目のみ設定を行います。
商品毎の細かな個別設定は、販売王の商品登録ウインドウで行うものとします。
Sub 商品登録csv作成マクロ()
Dim LRowa As Long
Dim NOM, NOMa, NOMb, NOMc As Integer
Const Msga As String = "IDスタートナンバーを入力してください。"
Const Msgb As String = "商品区分(1)を入力してください。"
Const Msgc As String = "商品区分(2)を入力してください。"
Const myTitle As String = "商品登録"
Dim SYO As String
'登録データの項目ラベルを付ける
Call Module2.商品登録csv項目ラベル
'Webから取り出した書籍データ行を調べる
Worksheets("作業シート").Select
LRowa = Range("A1").CurrentRegion.Rows.Count - 1
'入力ボックスで追加の情報を入手する
Range("A1").Select
NOM = Application.InputBox(prompt:=Msga, Title:=myTitle, Type:=1)
NOMb = Application.InputBox(prompt:=Msgb, Title:=myTitle, Type:=1)
NOMc = Application.InputBox(prompt:=Msgc, Title:=myTitle, Type:=1)
'入手した書籍情報でインポート用データ表を完成させる
Worksheets("商品CSV作成").Activate
For i = 0 To LRowa - 1
With Worksheets("商品CSV作成")
NOMa = NOM + i
.Cells(i + 2, 1).Value = NOMa
.Cells(i + 2, 9).Value = NOMb
.Cells(i + 2, 10).Value = NOMc
End With
With Worksheets("作業シート")
SYO = .Cells(i + 2, 2).Value
.Cells(i + 2, 5).Copy
End With
With Worksheets("商品CSV作成")
.Cells(i + 2, 2).Value = Left(SYO, 20)
.Cells(i + 2, 4).Value = Left(SYO, 7)
.Cells(i + 2, 5).Value = "1"
.Cells(i + 2, 30).PasteSpecial Paste:=xlValues
.Cells(i + 2, 31).PasteSpecial Paste:=xlValues
End With
Next i
Worksheets("操作ボタン").Activate
Range("A1").Select
End Sub
項目ラベルは別プロシージャーで作成、部品化します。
Sub 商品登録csv項目ラベル()
Worksheets("商品CSV作成").Activate
Cells.Select
Selection.Clear
Cells(1, 1).Value = "商品台帳.商品コード"
Cells(1, 2).Value = "商品台帳.商品名"
Cells(1, 3).Value = "商品台帳.商品名フリガナ"
Cells(1, 4).Value = "商品台帳.商品名略称"
Cells(1, 5).Value = "商品台帳.商品種別"
Cells(1, 6).Value = "商品台帳.拡張商品コード"
Cells(1, 7).Value = "商品台帳.イニシャルキーカナ(商品)"
Cells(1, 8).Value = "商品台帳.イニシャルキー英字(商品)"
Cells(1, 9).Value = "商品台帳.商品区分1"
Cells(1, 10).Value = "商品台帳.商品区分2"
Cells(1, 11).Value = "商品台帳.商品区分3"
Cells(1, 12).Value = "商品台帳.付箋1"
Cells(1, 13).Value = "商品台帳.付箋2"
Cells(1, 14).Value = "商品台帳.規格・型番使用区分"
Cells(1, 15).Value = "商品台帳.規格・型番"
Cells(1, 16).Value = "商品台帳.カラー使用区分"
Cells(1, 17).Value = "商品台帳.カラー"
Cells(1, 18).Value = "商品台帳.サイズ使用区分"
Cells(1, 19).Value = "商品台帳.サイズ"
Cells(1, 20).Value = "商品台帳.数量単位"
Cells(1, 21).Value = "商品台帳.販売入数"
Cells(1, 22).Value = "商品台帳.仕入入数"
Cells(1, 23).Value = "商品台帳.計算式コード"
Cells(1, 24).Value = "商品台帳.ワレモノ印刷"
Cells(1, 25).Value = "商品台帳.ナマモノ印刷"
Cells(1, 26).Value = "商品台帳.主要仕入先コード1"
Cells(1, 27).Value = "商品台帳.主要倉庫コード1"
Cells(1, 28).Value = "商品台帳.発注ロット"
Cells(1, 29).Value = "商品台帳.リードタイム"
Cells(1, 30).Value = "商品台帳.標準小売単価(上代)"
Cells(1, 31).Value = "商品台帳.標準売値"
Cells(1, 32).Value = "商品台帳.売値1"
Cells(1, 33).Value = "商品台帳.売値2"
Cells(1, 34).Value = "商品台帳.売値3"
Cells(1, 35).Value = "商品台帳.原単価"
Cells(1, 36).Value = "商品台帳.最低販売警告見積"
Cells(1, 37).Value = "商品台帳.最低販売警告受注"
Cells(1, 38).Value = "商品台帳.最低販売警告売上"
Cells(1, 39).Value = "商品台帳.最低販売価格"
Cells(1, 40).Value = "商品台帳.標準仕入価格"
Cells(1, 41).Value = "商品台帳.仕入値1"
Cells(1, 42).Value = "商品台帳.仕入値2"
Cells(1, 43).Value = "商品台帳.仕入値3"
Cells(1, 44).Value = "商品台帳.仕入伝票最新単価区分"
Cells(1, 45).Value = "商品台帳.販売時課税区分"
Cells(1, 46).Value = "商品台帳.仕入時課税区分"
Cells(1, 47).Value = "商品台帳.簡易課税商品区分"
Cells(1, 48).Value = "商品台帳.在庫管理有無"
Cells(1, 49).Value = "商品台帳.在庫管理開始日"
Cells(1, 50).Value = "商品台帳.在庫評価法"
Cells(1, 51).Value = "商品台帳.平均原価"
Cells(1, 52).Value = "商品台帳.最終仕入値"
Cells(1, 53).Value = "商品台帳.在庫繰越基準日"
Cells(1, 54).Value = "商品台帳.基準日原単価"
Cells(1, 55).Value = "商品台帳.在庫繰越数"
Cells(1, 56).Value = "商品台帳.上限在庫数"
Cells(1, 57).Value = "商品台帳.適正在庫数"
Cells(1, 58).Value = "商品台帳.最低販売周期"
Cells(1, 59).Value = "商品台帳.周期当たり販売数"
Cells(1, 60).Value = "商品台帳.受託商品区分"
End Sub
⑤集めた商品登録データ表をCSV化するVBAコードを記述する
Module2で作成した「商品CSV作成」シートを販売王にインポートできるテキストデータ(csv)形式に変更して書き出しを行います。
作成したCSVデータの保存フォルダを選択する窓が開きますので、「販売王商品登録CSV」フォルダを選択してください。
「販売王商品登録CSV」フォルダの下に個別フォルダ(顧客別や商品品種別など)を作成すれば、そちらへ振り分け保存することが出来ます。
VBAコード作成の流れ
Sub データCSV化()
Dim KUD As Range
Dim NOMb As Integer
Dim syID, FN As String
Dim Shell As Object
Dim FolderPath As String
'商品区分(1)登録番号を取得する
With Workbooks("販売データ入力.xlsm").Worksheets("商品CSV作成")
.Activate
NOMb = .Range("I2").Value
.Range("A1").Select
End With
'商品区分(1)登録番号を照会する
Workbooks.Open ThisWorkbook.Path & "\区分登録\商品区分登録.csv"
With Workbooks("商品区分登録.csv").Worksheets("商品区分登録")
Set KUD = .Range("A:A")
On Error Resume Next
v = Application.WorksheetFunction.Match(NOMb, KUD, 0)
syID = Range("D" & v).Value
On Error GoTo 0
If syID = "" Then
MsgBox "入力された商品区分がリストと一致しません。" _
& vbCrLf & "「未設定」として扱います。", vbExclamation
syID = "未指定"
End If
End With
ActiveWorkbook.Close
'保存先フォルダを指定する
Set Shell = CreateObject("Shell.Application") _
.BrowseForFolder(0, "フォルダを選択してください", 0, _
ThisWorkbook.Path & "\販売王商品登録CSV")
If Shell Is Nothing Then
FolderPath = ""
MsgBox "保存フォルダが選択されていません。" & vbCrLf & _
"作業を中止します。", vbExclamation
Exit Sub
Else
FolderPath = Shell.Items.Item.Path
End If
'新しいブックを作成しシートをペーストする
With Workbooks("販売データ入力.xlsm").Worksheets("商品CSV作成")
.Activate
.Cells.Select
.Cells.Copy
End With
Workbooks.Add
With ActiveWorkbook
.ActiveSheet.Cells.Select
.ActiveSheet.Paste
.ActiveSheet.Range("A1").Select
'ブックを登録商品名+年月日時間でCSV保存する
FN = Format(Now(), "yymmdd-hhmm")
.SaveAs Filename:=FolderPath & "\" & "商品登録_" _
& syID & FN & ".csv", FileFormat:=xlCSV, _
CreateBackup:=False
.Close True
End With
Workbooks("販売データ入力.xlsm").Worksheets("操作ボタン").Activate
Range("A1").Select
End Sub
⑥エクセルブック「販売データ入力.xlsm」の各シートにプロシージャー実行のコマンドボタンを設置する
Webから入手した書誌データは、必要な情報部分を抜き出して「作業シート」に貼り付けられます。
その作業を行うための、プロシージャーを起動するボタンを「貼り付け」シートに設置します。
「NOCSからの商品登録」を行うボタンと「Books 出版書誌からの商品登録Google Chrome」用のボタンの2種類を設置します。
次項の「コマンドボタンとプロシージャーを連結させる」完了後に、マクロの登録で、
「NOCSからの商品登録」はModule1の「書誌データNOCS入手」
「Books 出版書誌からの商品登録Google Chrome」はModule1の「書誌データ出版書誌GC入手」
のプロシージャーをそれぞれセットします。
実際の動作をチェック
販売王用の商品登録データCSVを作成保存のためのボタンを、「操作ボタン」シートに設置します。
この様に作ります。
次項の「コマンドボタンとプロシージャーを連結させる」完了後に、マクロの登録で、
「商品CSVデータの作成」ボタンは、Module2の「商品登録csv作成マクロ」とModule3の「データCSV化」
のプロシージャーと連結することになります。
⑦シートに配置したコマンドボタンと各プロシージャーとを連結させるVBAコードを作成する
Module4に記述するのは、Module2の「商品登録csv作成マクロ」とModule3の「データCSV化」を「商品CSVデータの作成」ボタンに連結させるコードになります。
Sub 商品登録CSV()
Call Module2.商品登録csv作成マクロ
Call Module3.データCSV化
End Sub
ボタンの設置方法については、
「データ抽出ボタンを設置する」でも確認することができます。
コマンドボタンとプロシージャーの連結については、「マクロの登録」で行います。
「NOCSからの商品登録」はModule1の「書誌データNOCS入手」
「Books 出版書誌からの商品登録Google Chrome」はModule1の「書誌データ出版書誌GC入手」
実際の動作をチェック(Books 出版書誌データサービス)からのデータ入手
「商品CSVデータの作成」ボタンは、Module4の「商品登録CSV」を登録します。
実際の動作をチェック
必要な3項目を入力すると次に、保存フォルダを選択する画面に映ります。
このサンプルでは「●●●」フォルダを選択しました。
このように、指定したフォルダにCSV化させたエクセルファイルが保存されました。
Webの商品情報を販売王に登録できるVBAコードのまとめ
このVBAソフトの一番の利点は販売王において、
同じ区分登録の顧客に対して、多種類の商品を、大量に一括登録できるようになるということです。
気の遠くなるような1種類毎の一つづつの登録作業からこれで解放されます。
販売王用データCSVファイルを、Webにある商品情報を利用して作成するというテーマはこれで完成です。
書誌以外の商品を登録する方法もこの作業の応用で可能です。商品情報をどのようなWebサイトから入手するかがカギとなるでしょう。
次の段階は、
販売王で販売伝票(売上伝票)を楽々に作成のため、どのようにデータ導入CSVを作成すればよいのかということです。
そこにもまた、この今作成したBOOK「販売データ入力.xlsm」の機能追加として行っていきます。
次の記事からは売上伝票作成についてです。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
電子書籍版「改訂新版 てっとり早く確実にマスターできるExcel VBAの教科書」をamazonで見てみる
(著者)大村あつし(出版社)技術評論社
(税込価格)2,508円(本体2,280円+税)
30冊を超えるExcelのマクロやVBAの解説書を執筆してきた著者による考え抜かれた本書の内容と構成。
独創的な解説手法で必ずExcel VBAが理解できます!
初級からの参考書ですが、より実践的切り口での解説をしています。
QRコードから操作の流れを動画(無音です)で確認することもできるようになりました。
文章解説と動画との関係性は、主は文章での解説、サポートが動画になります。
エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたい内容を纏めています。
今回の記事はここまでです。 最後までご覧いただき有難うございました。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。