(プログラミグの学び舎 01 VBA)楽天ECサイトへのCSV商品登録。

・初めましてtossyです。

来年からプログラミングも義務化されるということで、僕も、何か感化されまして、プログラミング学習中の方や、プログラミングをこれから勉強する方は、または業務を短縮して良い世界を作りたい方へ、少しでも役に立てればと思い、プログラミングや、プログラミング情報を出来るだけ分かりやすくお伝えできればと思います。

 

よろしくお願いします。

 

f:id:toshi-n:20190412211456g:plain

楽天

・第1回目は、ちょっとマスな内容で申し訳ないんですが、ただ、VBAExcelが入っていれば使えるので、楽天に限らずっていう目で見て頂ければと思います。

 

VBAとは、ビジュアルベーシックとうプログラミング言語です。ExcelAccessなどで使える言語です。

 

ビュジュアルベーシックといことだけあって、ビジュアルは、皆さん見慣れていて、想像がし易いと思います。セルだの・・・んーあと名称がわかりません。

 

とりあえず、プログラミグ創造性&論理力

 

っと僕のプログラミングの師匠からの教えです。

---------

ま〜やります。

スクショで説明させて頂きます。

 

 

1:今回のミッションの確認 & 対策の創造性。

 

f:id:toshi-n:20190412212930p:plain

↑ 見にくくて申し訳ないんですが、2つの薄茶色と言いますか、黄色のテーブルが(HTML & CSS)があります。このデータのバナー(のし無料)の上に移動さ、

データを移動または消したCSV項目欄には、空のスペースを入れる(楽天のシステム上の問題でcsv  の項目欄が空だとデータ消えたと判別されない)、csvファイルのセルAに文字列 u を入れる(u = 更新)

 

f:id:toshi-n:20190412213300p:plain


 これが目的になります。

 

楽天ショップをお持ちの方は知っていると思いますが、楽天CSVファイルはこんな感じです、

 

f:id:toshi-n:20190412214209p:plain

 

↓ セルAに u をいれます。

f:id:toshi-n:20190412220831p:plain

 

↓ 上記の移動対象の HTML & css のセルです。

f:id:toshi-n:20190412221425p:plain



 

↓ セル X がバナーのあるセルです。

f:id:toshi-n:20190412221052p:plain

 

今回は、特定のカテゴリー一覧をダンロードしまして、1400数行のデータです。

 

 それでは解決方法を考えてみます。

・僕は2つ考えました。(2つしか出でこなかったです 汗)

※ここでどれだけ、パターンを考えられるかが大事だと思います & ここで考えられなくても、やってみて修正パターンをどれだけ考えられるか、またダメだったら、またどれだけアイディアの数が出るか!

 

単純なトライ & エラーではなく、エラーしたら、どれだけ次のトライを創造できるかが大事だと思います。

 

----------------

1:VBAを使わず、Excelの機能だけで完結させる。

置換を使う。

その後、上部のHTML & CSS の欄のCSV を削除。

VBA で 削除した、セルに、半角スペース = " " ←これです 

を入れる。

セルA には、nをいれて、フィルドラッグ(手作業で下に引っ張る)

 

2:VBA使用。

・FORループで回し 上部のHTML & CSS の値を、バナーの上に移動させる。

移動後、上部のHTML & CSSのセルに 半角スペースを入れる " "

そして、セルAに "n" を入れる。

 

----------------

1:VBAを使わず、Excelの機能だけで完結させる。

でやってみようと思います。って

おいと、Excelじゃんと、すいません。。。

 

 2:VBA使用。

でやってみましょう。プラス、本当に 2:VBA使用。

の方が時間的に早いです。

効率的にやって、少しはのんびりしてください♫

 

まずは VBA 起動

↓ これではわかりにくいと思いますので、グーグルで検索してください。

VBA 起動 方法」 とかで出てくると思います。

f:id:toshi-n:20190412222304p:plain

 

そして、いよいよ

VBA コードを記述します。

 

f:id:toshi-n:20190412222822p:plain

↑ 訂正 Cells(i,26).Value = " "     

※空白行を入れる。

 

↑ コメントアウトしてありますので、画像を見てもらえればわかるとは思うんですけど、おそらく、画像だ見にくいので、重要なところを記載したいと思います。

 

Dim i As Long

For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row

// コードを記述

Next i

↑ 赤文字部分が重要です。

 

DIm i で変数という箱を作ってます。

 

そこに、

For i = 2 To Cells.....

を入れます。

Cells(Rows.Count, 2).End(xlUp).Row は、 Rows.Count の後の 2に注目してくだい。

 

・1でもいいじゃんってなりますよね。

まず、?は除いてください。

Cells(Rows.Count, ?).End(xlUp).Row

↑ 上記の構文は、? のセルの最終行を取得するという意味です。

 

つまり、Cells(Rows.Count, 1).End(xlUp).Row

は、セルのAの最終行を取得するになります。

-------------

セルAは、空です。だから、1にすると最終行もクソもないので、ループが一行も回りません。

-------------

なので、2でも3でも4でも、ループを回したい最終行まであるセルを ? に入れます。

後は、ループの中で、値を入れ替えたりしているだけです。

 

ここで大事なのが、ループ作ってしまえば、なんとでも自由に処理でき流ということは。そして、ループをExcelのセルを通して、イメージできること。

 

プログラミングは、論理と創造力のJazzだと僕は思ってます。

 

For i = 2 To Cells...

の 2 To ていうのは、2行目から開始ということです。

上記のVBA wo 実行した結果のスクショを貼らせて、第一回は終わりにしたいと思います。

 

読んでくださった皆様!有難うございます。

 

また、次回よろしくです。

 

 

 

f:id:toshi-n:20190412225431p:plain

 

f:id:toshi-n:20190412225520p:plain

 

表示結果

f:id:toshi-n:20190412230322p:plain

 

下記ページの「出産・内祝いギフト」のデータを変更する作業です。

URL:https://item.rakuten.co.jp/gift-concierge/9150-115/