タイトルのとおり。
クラウドワークスの依頼一覧を眺めていて、vba関連で結構多いのが、
いろんな国のamazonから、同じ商品で価格が違うものをリストアップするマクロを作ってくれって依頼。
その次に多いのが、FC2とかいろんなブログサービスやWordpressに投稿するマクロを造ってくれという依頼。
おそらくたくさんのアカウントやブログを持っていて、さらにライターをたくさん抱えていて、書いたものをエクセルに集約して、簡単に投稿したいんだろう。
いちいちいろんなページにアクセスして手動でやるのは面倒だものね。
これから依頼をたくさんとりたいので、練習のために作ってみた。
ダウンロードはこちら
http://www.saizo-aoyagi.jp/apps/
コード
コア部分のvbaクラスモジュールをgistで公開した。
gist9584563
こいつをこぴぺすれば動くが、XMLHTTPを使ってるので
Visual Basic Editor のツール>参照設定で、Microsoft XML v6.0二チェックを入れないといけません。
gistにある内容のクラスモジュールを作ったら、以下のようにすれば使える。
Dim sender As WPSender Set sender = New WPSender sender.init (wordpressのURL) sender.setUser ユーザ名, パスワード Dim response As String response = sender.postToWP(タイトル, 本文, 公開か下書きかを表す1or0の値)
解説
流れとしては、XMLHTTPのインスタンスについて、
メソッドはPOSTで、URLをセットして、ヘッダーのcontent typeはapplication/x-www-form-urlencodedとしてやり、
xhr.Open "POST", mURL, False xhr.setRequestHeader "Method", "POST " & mURL & " HTTP/1.1" xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XML-RPCのルールに従って、ワードプレスへの投稿内容を整形し他文字列をsendメソッドで送ってやる。
xhr.send (param)
XML-RPCのルールに従ってというのがややこしいが、以下の参考サイトを見れば大体わかる。
参考
wikipedia XML-RPG
http://ja.wikipedia.org/wiki/XML-RPC
PHPで外部からwordpressに投稿する方法
http://blog.livegoods.net/archives/wordpress-xml-rpc-post/
Excel で XML-RPC を投稿する方法
http://jimsie.blog57.fc2.com/blog-entry-34.html
カスタマイズ
これを改造すれば、いろんなwordpressのサイトに自動投稿するマクロが造れるだろう。
ブログサービスでも基本は同じ。
それぞれの環境に合わせてカスタマイズしてくれという依頼はこちらへ
https://crowdworks.jp/public/employees/35802
Excel VBA 逆引き辞典パーフェクト 2010/2007/2003対応
- 作者: 田中亨
- 出版社/メーカー: 翔泳社
- 発売日: 2010/11/16
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 47回
- この商品を含むブログ (10件) を見る
続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
- 作者: 立山秀利
- 出版社/メーカー: 秀和システム
- 発売日: 2009/12/16
- メディア: 単行本
- 購入: 3人 クリック: 13回
- この商品を含むブログ (3件) を見る
追記: 画像投稿機能
画像投稿もできるようになった
uozias.hatenablog.com
おすすめテキスト
マクロ関係はこれ。