< | >

excel:セル内の改行コードの違い(vbCrLf、vbLf)
  • (2013-03-23 06:57:58)
知らないうちに誤作動するプログラムに注意。今回は見た目ではわからない改行コードではまる(2013/03/23 小平探検隊)

住所不備で返品



住所データからマンション名が欠落して「部屋番号不明」でヤマト運輸さんから返品されてきたことで判明。

Amazon受注データの改行コード



調べると番地とマンション名の改行コードが「vbLf」で見た目には改行されているが、データベースのフィールドに取り込む時点で改行後のデータが落とされていた。

Amazon受注データの改行コードは通常「vbCrLf」だが、「vbLf」の場合があることが判明。

当社ではAmazonの住所データはExcelの1つのセル内に取り込む仕様にしており、その後Split関数で改行ごとに1行のデータに変換している。Split関数の改行コードは「vbCrLf」を使用しており、ここで誤作動を起こしていた。

対策



データ整形プログラムに、replace関数(vbLf,vbCrLf)を追加して、改行コードをあらかじめ統一しておく。

selectedRange.Replace vbLf, vbCrLf, xlPart

(3/26 訂正)上記でも誤動作が発生することが判明。改行コードがどうなっているのかわからない。何かとってもおかしい。時間切れなので、とりあえず下記コードで逃げる。

selectedRange.Replace vbCrLf, "★★", xlPart

selectedRange.Replace vbLf, "★★", xlPart

selectedRange.Replace "★★", vbCrLf, xlPart

Amazonは細かい仕様をときどき変更している



このトラブルは過去1ヶ月で2件発生している。過去2年間1度も発生しなかったことを考えると、どうもAmazonさんは仕様をときどき変更してるのではあるまいか。それともユーザーが登録時に入れた改行コードなのかな?

今回はAmazonさんの仕様変更かどうか不明だが、とにかく仕様変更は日常的な会社さんだから、1度プログラムを書いても、継続的な微調整が求められる。そういうモールだと認識しておくことが肝要。

統一されることはない



日本語の文字コードや改行コードの問題は悩ましい。統一されるころはないだろう。

昔、RS232の物理仕様のなさで、いろいろな形状のRS232コネクターを持っていたが何かあるたびに「統一されたらな」と望んでいた。

しかし、ついに統一されることはなかった。関係者の利益が交差した後はデッドロックでしかないという教訓。ところが、USBの登場で、RS232という仕様自体が崩壊。

いったんスパゲティになった仕様は利害関係を整理するよりは新しい何かを生み出し地盤ごと新しい世界に引っ越した方が早いようだ。






<< Amazon セラーセントラルのURL変更は突然に< | >年2回程度の3万通のメールDM >>
search
layout
admin

[▲page top]