uoz 作業日記

様々な作業の記録を共有するブログです。

wordpressに投稿するエクセルvbaマクロが結構簡単にできた。

タイトルのとおり。

クラウドワークスの依頼一覧を眺めていて、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のルールに従ってというのがややこしいが、以下の参考サイトを見れば大体わかる。

カスタマイズ

これを改造すれば、いろんなwordpressのサイトに自動投稿するマクロが造れるだろう。
ブログサービスでも基本は同じ。

それぞれの環境に合わせてカスタマイズしてくれという依頼はこちらへ
https://crowdworks.jp/public/employees/35802


Excel VBA 逆引き辞典パーフェクト 2010/2007/2003対応

Excel VBA 逆引き辞典パーフェクト 2010/2007/2003対応

続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本

続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本

追記: 画像投稿機能

画像投稿もできるようになった
uozias.hatenablog.com

おすすめテキスト

プラグイン開発の本みたいなタイトルだけど、wordpressの基本構造を理解するのにおすすめ。



おすすめテキスト

マクロ関係はこれ。