【vba】改行コード付きCSVファイルのインポート

苦戦が続くネットショップ!
通販がこんなに難しいなんて・・・・:-o

地元の商品「半田そうめん」「大野海苔」「金ちゃんラーメン」だけを売るのでは店の存在感を出せないのか・・・

思い切って本業で扱っている数百種類の商品もネットで売ってみようかな?

もしそれをするなら問題がある。
それは、Yahooショッピングの管理画面「ストアクリエイターPro」の商品登録画面の使い勝手がとっても悪いこと。
1品登録するのに数分、10品登録するだけで1時間以上かかってしまう。

さてどうしよう?

と考えても、結局やることはいつも同じ。
こんな時には、私の相棒MS-Accessでデータベース開発。
「ストアクリエイターPro」CSVファイル商品登録用ファイルを生成するローカルシステムを作ってみるか。

CSVファイルのインポート・エクスポートシステムはたくさん開発したので作る自信はある。

と思ったら・・・・予想以上に難しい:-o
問題は、CSVファイルファイルに混ざってる改行コード

Yahooショッピング商品詳細ページ:商品説明文「explanation」
「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

CSVファイルをテキストエディタで開くと「explanation」は改行付き
「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

まず試したのがAccessのインポート機能。
「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

でも、これを使うとなぜか改行が無い!
フォームを作り開いてみてもやっぱり改行が消えている!
これでは、改行付きの原稿をPCで書きCSVファイルへ書き出すことが面倒(困った)
改行コードはどこに行ってしまったんだろう?

「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

そこで作戦変更。

TextStreamでファイルを開きsplitでカンマ毎に切り出すことにしました。
仕事の合間にTextStreamと格闘しながら3日かけてプロトタイプが完成。

苦労したのが、行末の処理。
行末にはカンマが無いので、最終項目を取ろうとすると次行の先頭項目まで取ってきてしまう。

そこで、もう一手間。
最終項目だけは、もう一度、今度は改行コードでsplitし最終項目と次行の先頭項目の2つに分けることでこの問題をクリア。
「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

やったー、完成した!
早速、テスト開始。

あれ!

がーん、テストデータだと動くのに実データだとエラーで止まる!
原因を調べると、metaタグ「meta-key」に項目分離と関係無いカンマがたくさん存在している!

そうだよな、「meta-key」にはカンマは必須の記号!
商品説明文ならカンマを使わないよう運用で対応できるが、「meta-key」に半角カンマは絶対必要だよな・・・

んんん、また袋小路モード:-(

さてどうしよう?
とにかくMETAタグにカンマが有る以上TextStreamは使えない。
改めて初心に戻りAccessのCSVインポート機能で取り込んだテーブルをボーと眺めていると・・・・

「もしかして」とひらめいた!

改行コードが有るのに改行しない不具合は、過去に何度も経験済み。
UNIXかMACのファイルをPCで開いた時と同じだ!

そこでフォームにボタンを追加しReplace関数でCRとLFをCRLFに書き換えるスクリプト書き、実行。

すると、LFをCRLFに変換させた時に改行が表れました 🙂
「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

やっぱり改行コード(LF)はそこに有ったんだ(ほっ)
「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

試しに更新クエリーで全レコードの改行コードをLF→CRLFに一括変更してみると、すごい全レコードが書き換わった!
「ストアクリエイターPro」CSVファイル作成プログラムを開発しようかな・・

これでYahooショッピング商品管理データベースを開発する目途が立ちました:lol:

では、作りはじめるか・・・・・
何としても2015年度のYahooショップ「徳島オンラインショップ」を売れる店に改革しなければ!

次は、商品用の撮影キットを買う予定。
でも、種類が多すぎてどれを買っていいか分からない 😕
写真撮影は、VBAより難しいです:-(

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA