昨年12月に作った、Amazonからデータを取ってくるExcelマクロにコメントをいただいたのが嬉しくて、項目追加版を作りました。githubのブランチにあります。
追加した項目:
ページ数、通貨、定価、最安値(新品、中古、コレクター)、売上ランクこのうち最安値は、これまで取得していたResponseGroup(ItemAttributes)ではなく、OfferSummaryの属性です。こちらの記事に複数のResponseGroupが欲しければカンマでつなぐと書かれていたのですが、なぜかSignatureが正しくないと言われ(深夜のうっかりミスかも)、単純にResponseGroup=Largeにしたら欲しいもの全部入りでした。
& "&ResponseGroup=Large" _
レスポンスから使いたい属性を取り出す処理を追加して
map.Add "pages", attributesNode.SelectSingleNode("NumberOfPages").text map.Add "listPrice", attributesNode.SelectSingleNode("ListPrice/Amount").text map.Add "currencyCode", attributesNode.SelectSingleNode("ListPrice/CurrencyCode").text Dim offerSummaryNode As MSXML2.IXMLDOMNode Set offerSummaryNode = itemNodes(i).SelectSingleNode("OfferSummary") map.Add "lowestNewPrice", offerSummaryNode.SelectSingleNode("LowestNewPrice/Amount").text map.Add "lowestUsedPrice", offerSummaryNode.SelectSingleNode("LowestUsedPrice/Amount").text map.Add "lowestCollectiblePrice", offerSummaryNode.SelectSingleNode("LowestCollectiblePrice/Amount").text map.Add "salesRank", itemNodes(i).SelectSingleNode("SalesRank").text
シートに書き出すところも追加して
ws.Cells(row, colPages).Value = map("pages") ws.Cells(row, colCurrencyCode).Value = map("currencyCode") ws.Cells(row, colListPrice).Value = map("listPrice") ws.Cells(row, colLowestNewPrice).Value = map("lowestNewPrice") ws.Cells(row, colLowestUsedPrice).Value = map("lowestUsedPrice") ws.Cells(row, colLowestCollectiblePrice).Value = map("lowestCollectiblePrice") ws.Cells(row, colSalesRank).Value = map("salesRank")
完成です。
今回の学び「継続行のコメントアウトってめんどくさい」
コメントアウトも継続してしまうとはね。そりゃそうなんだけど、、、。
はじめまして。
返信削除Excelで所有している商品の管理をしたいと思い検索していて辿り着きました。
ISBNではなく、JANコードを入力したら隣のセルに商品名・Amazonランキング・最安値が
入力されるようにすることも可能なのでしょうか?
それと、現在もAmazonのアカウントとアフィリエイトタグは日本のものでは動作しないのでしょうか?
削除返信遅くなってすみません。
開発者ガイドを見た限りのお返事になりますが
・ItemIdにJANコードも使えます。パラメータIdType=JANを指定します。com, frなどにリクエストする際はEANとして送ればいいはず。
・ただしSearchIndexを指定する必要がでてきます。
・ItemLookupのResponseGroupにOfferSummaryとSalesRankを指定すれば価格とランキングがとれるでしょう。
・API開発者登録にはAmazon.comのアカウントが必要です。
・アフィリエイトタグは日本のものでいいはずです。というかリンク先がjpサイトなら日本のを使わないとダメな気がします。