WooCommerce の受注データをネクストエンジンの汎用形式で取り込むためのマクロ処理についての追記です。
一つ忘れないようにメモ。
下記はWooCommerceの受注データを書き出すと、文字コードがUTF-8で書き出される。エクセルで開くと文字化けするのでSISJISに変更する必要があります。「ADODB.Stream」などを設定すれば マクロの操作でも文字コード変更はできるようですが、委託元の企業が基本マックで業務を行っているために使えない。
その為、UTF-8の文字コードをテキストファイルでSISJISへと手動で変換をはさみました。
なお、csv形式でエクセルで開くとその後の保存で電話番号や郵便番号などの0から始まるセルの0が省略されて保存されてしまう。その為、.txt(テキストファイル)に変更後エクセルで開く。
テキストファイルで開いた場合は、当然カンマで区切られることなく、A列のセルに行のすべての情報が記載されているため、「区切り位置の変更」を行う必要がある。
「区切り位置の変更」をVBAで書くと下記のようになる。
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1),
ここで大切なポイントは以下である。
Array(5[列の番号], 1[書式設定]),
書式設定は下記の数字より希望の値を選ぶとよい。
定数 |
値 |
内容 |
xlGeneralFormat |
1 |
一般形式 |
xlTextFormat |
2 |
テキスト形式 |
xlMDYFormat |
3 |
MDY 日付形式 |
xlDMYFormat |
4 |
DMY 日付形式 |
xlYMDFormat |
5 |
YMD 日付形式 |
xlMYDFormat |
6 |
MYD 日付形式 |
xlDYMFormat |
7 |
DYM 日付形式 |
xlYDMFormat |
8 |
YDM 日付形式 |
xlSkipColumn |
9 |
転記しません |
xlEMDFormat |
10 |
EMD 日付形式 |
1列目が郵便番号や電話番号の場合は、テキスト形式 Array(1, 2), のようにするとするとよい。
列を挿入した際に、その列の扱いを標準にしたい場合は、
Selection.NumberFormatLocal = "G/標準"
で標準にするとよい。
文字コード云々の面倒がなければ、ファイルを開く、保存する、マクロですべて支持してしまっても良さそう。
マクロは業務省略可にも非常に有効ですね。
忙しいEC関連の方はぜひ活用のご検討を!