IT仕事

VBA-JSONはダメだったがPowerQueryはよかった

投稿日:

オンラインショップの在庫管理目的で、業務システムを動かしているAccessかExcelで、何とかしてWebの商品マスターAPIのデータを取ってきたい。

最初、VBA-JSONというのを使えばいいのかなと思って、一日触ってみた。
いいとこまではいくのだが、名前と階層をいちいち書いていかなくては行けなくて、結構それが面倒で小難しくて、すぐに嫌になった。

次に試してみたのは、Excel2013のアドインのPowerQuery。
結論を先にいうと、うまくいった。
プログラムレスで、JSONをExcelのシート上にテーブル表示できる。
作ったシートはAccessでリンクできた。
試していないけど、Accessのクエリで加工もできそうだ。

途中にぶち当たった問題:

itemなどと表示されていてリンクのついている文字をクリックすることでその階層の表示ができるのだが、欲しい項目を見つけるのに結構苦労するところが一つ。
まあこれは、http://json.parser.online.frのような、JSONをパースして視覚的に表示してくれるツールでもって、あらかじめ自分の欲しい項目がどれなのか、リストアップしておけば問題ないであろう。

CS-CARTのWebAPIは、サーバ環境によってURL文字列が変わる。
「mod_rewritが無効になっている場合は・・・」とマニュアルにあって、自分の環境はまさにそれだと気が付くのに大分時間がかかった。

CS-CARTの商品リストをWebAPIから取ってきたいのが本命だったのだが、何度やっても最大50件までしか取ってきてくれない。
原因はCS-CART側にあることは、少し調べてみてわかったのだが、対応策が見えない。
ユーザーが少ないせいか、WEBに情報が少ない。
試行錯誤して、URLの最後に「limit=100」のように文字を入れてみたら、100件とれた! マニュアルには書いてなかったけど、それでもうまくいくときにはいくものだ。
50件までしか取れなかったURL:https://www.hogehoge.com/api.php?_d=products
100件取れたURL:https://www.hogehoge.com/api.php?_d=products&limit=100

-IT仕事

執筆者:

関連記事

秀丸で、例えば「123市」を「123都市」にするときの正規表現の使い方メモ

検索文字のうち、置き換え後に残したい部分を、カッコで囲むのがミソ。 検索文字:([0-9])市 置換文字:\1都市 wordだと「ワイルドカードを使用する」とすると、正規表現が使える。

PhotoshopElementsで写真の角を丸くする その2

込み入った写真の場合、境界線がはっきりせず、上記の方法が使えなかった・・・以下、別のやり方。   1.シェイプツールの角丸長方形で写真の上にシェイプのレイヤーを作る。このとき描画色は写真に含まれない色 …

no image

パラメータクエリにパラメータをセットして実行した結果をデータシートで表示する」というコードの実行で3065エラー

Accessの仕様として、パラメータクエリだけが駄目なのかと思ったら、なんと選択クエリが駄目なのだそう。 理由は、Executeメソッドはアクションクエリのもので、選択クエリのものではないからだそう。 …

no image

CMOSボタン電池切れ

DellのOptiplexを使っている隣人(会社)、席替えの際にコンセントから電源ケーブルを抜いて以来、PCが立ち上がらなくなった。 XPなのだが、ようこそ画面の直前の「マウスポインタと黒背景」から先 …

no image

「良さそう」と思ってもらうには4つのポイント

経営を伸ばす視覚伝達デザインの鉄則 : 第4回 「良さそう」と思ってもらうには4つのポイントが必要 (1) 伝えたい情報が伝わっているか (2) 伝えたい世界観が伝わっているか (3) アイデンティテ …