2008-05-25 Excel VBAでブログに投稿する
XML-RPCを使うとExcelやAccessからブログに記事を投稿したり,修正したりすることができます。手順をご説明します。
概要
- metaWeblog.newPostのサンプル
- ブログの操作にはXML-RPC(vbXMLRPC.dll)を使う
- Excel,Accessに対応。おそらくWordでも可
注意事項
現在のvbXMLRPC.dll(Ver.0.9.0042)は,DBCS(Double Byte Character Set)に対応していないようです。どういう意味なのかというと,日本語を含む文字列を送受信させるとエラーになります。
「それじゃだめじゃん」ということになるのですが,裏技があるのです。日本語をすべて数値文字参照(&#xxxx;という形式)に置き換えてしまえば,日本語を通すことができます。
投稿された文章は,普通のWWWブラウザであれば問題なく表示されるのですが,携帯電話では文字化けするかもしれません。また,投稿される文章の中身は「&#xxxx;」という記号の羅列です。ブログの管理画面で再編集しようとしたときに,はっきり言って読めませんので途方に暮れることになるかと思います。
これらを考慮した上で以下を読み進めてください。
準備
(1) vbXMLRPC.dllのインストール
「vbXMLRPC Binaries Download」からダウンロードのページに進んで,vbXMLRPCのバイナリをダウンロードします(発電所の画像が出てくるかもしれませんが,気にしないでください)。ZIPファイルを「c:\program files\」以下に解凍しておきましょう。
(2) 参照設定
vbXMLRPCをVBAで使うための設定です。
(i) Excelを起動し「Visual Basic Editor」を起動します。
(ii) <Excel 2007を使っていてVisual Basic Editorの起動方法が分からない場合>Excel 2007ではリボンの「開発」タブから起動することができます。「開発」タブはExcelの標準設定では表示されません。Excelのオプションを開き,「[開発]タブをリボンに表示する」をチェックしておきます。<画像↓>
(iii) Visual Basic Editorの「ツール(T)→参照設定(R)」にて,参照設定ダイアログを開きます。「参照(B)」ボタンをクリックし,vbXMLRPC.dllを選択します。
(iv) 「vbXML - Simple XML Parser」と「vbXMLRPC - XML-RPC Client」の2項目をチェックし,OKをクリックします。<画像↓>
(3) ブログの設定
以下の4点を調べておきましょう。
- APIのエンドポイント(サービスのURI)
- ブログID
- ユーザ名
- パスワード
確認の仕方はお使いのブログによって異なります。また(当然のことですが)XMLRPCに対応していないブログでは使えません。
コード
以下,metaWeblog.newPostのサンプルコードです。実行すると少し待たされます。投稿時にブログが再構築されるからだと思います。ブログの設定を変えれば挙動が変わるのかもしれません。
Public Sub newPost() Dim linsRequest As New XMLRPCRequest Dim linsResponse As XMLRPCResponse Dim linsUtility As New XMLRPCUtility Dim linsStruct As New XMLRPCStruct linsRequest.HostName = "blog.sakura.ne.jp" ' ホスト名 linsRequest.HostPort = 80 ' ポート番号 linsRequest.HostURI = "/rpc/" ' パス linsRequest.MethodName = "metaWeblog.newPost" linsRequest.params.AddString "12345678" ' ブログID linsRequest.params.AddString "example.sakura.ne.jp" ' ユーザ名 linsRequest.params.AddString "password" ' パスワード ' linsStruct.AddString "title", HTMLEntity_encode("タイトル") linsStruct.AddString "description", HTMLEntity_encode("本文") linsStruct.AddString "dateCreated", "2007-04-01T00:00:00" linsRequest.params.AddStruct linsStruct ' content linsRequest.params.AddBoolean True ' publish Set linsResponse = linsRequest.Submit If linsResponse.STATUS = XMLRPC_PARAMSRETURNED Then ' リクエストが成功すると記事IDが返ってくる Debug.Print "id=" & linsResponse.params(1).StringValue Else Select Case linsResponse.STATUS Case XMLRPC_PARAMSRETURNED Debug.Print "Unexpected response from XML-RPC request " & linsResponse.STATUS Case XMLRPC_FAULTRETURNED Debug.Print "Server returned a fault. Code is '" & linsResponse.Fault.FaultCode & "', description is '" & linsResponse.Fault.FaultString & "'." Case XMLRPC_HTTPERROR Debug.Print "HTTP error encountered. Code is '" & linsResponse.HTTPStatusCode & "', description is '"& linsUtility.GetHTTPError(linsResponse.HTTPStatusCode) & "'." Case XMLRPC_XMLPARSERERROR Debug.Print "XML Parsing Error encountered '" & linsResponse.XMLParseError & "'." Case XMLRPC_NOTINITIALISED Debug.Print "Weird, the response claims not to be initialised !!!" Case Else Debug.Print "Double Weird, unknown response status '" & linsResponse.STATUS & "'." End Select End If End Sub Public Function HTMLEntity_encode(str As String) As String Dim ret As String ret = "" Dim i As Long Dim c As String Dim charCode As Integer Dim hexCode As String For i = 1 To Len(str) c = Mid(str, i, 1) charCode = AscW(c) If charCode > 127 Then hexCode = Hex(charCode) ret = ret & "&#x" & hexCode & ";" Else ret = ret & c End If Next HTMLEntity_encode = ret End Function
メモ
- vbXMLRPCを使わない方法 ― いまのところ代替手段を発見していません。Microsoftが正規に配布しているCOMで簡単にできそうなのですが,どうも見当たらないのです。XMLRPCはすでにレガシーな規格だそうで,この先,進展があるのかどうかも不透明です
- Word 2007のブログ機能 ― Word2007にはブログの管理機能が備わっていますが,これをVBAで操作するのは不可能なようです
いずれにしても何か分かったことがあったら,お知らせします。
ExcelとAccessどちらが良いのか
ExcelとAccessのどちらを使えばよいのか悩む人がいるかもしれません。なぜなら,今回のお題はExcelとAccessのどちらからでもできるのです。
Accessではデータに項目(フィールド)とデータ型を指定できますので,データ構造が堅牢になります。操作の不手際で,変なデータになってしまう危険性を低くすることができます。また項目には名前をつけることができるので,VBAの入力補完機能を利用して項目名を入力できるという利点もあります。「できる」ことがたくさんあるというわけですね。
対してExcelですが,仕事を早く片付けたい場合や職場で複数の人と作業している場合には魅力的な選択肢でしょう。「最適」とは言えないものの, Office付きのPCであれば必ずインストールされていますので入手しやすいです。また書籍やネットで入手できる情報量は,Excelの方が多いようです。
Excelであれば「困ったとき」に,だれかが助けてくれる可能性が高いと考えられるのです。
»固定リンク »490.Excel VBA漂流記(草案) »Excel »Excel VBA
2008-05-21 今日は筋トレの真似の日
こんばんは,ただいま23時半です。さきほど筋トレの真似をしてきました。そろそろ寝ます。
少し悲しいお知らせです。先週から全国チェーンで有名な某スポーツクラブに通っているのだが,ここはダメかもしれません。
先週からジムでひととおり上半身・下半身の筋トレの真似をしてみて気づきました。備えられているお道具がよろしくないようなのです。現時点で気づいていることを少々。
- 腹筋台に傾斜を付けられないので,腹筋運動の負荷が低すぎる
- フリーウェイトの機材はあるものの,フラットベンチしかない
- 細かい筋肉を鍛える小道具が存在しない(たとえばバランスボード)
特に「体幹」を鍛えるための道具が欠けているように感じました。もちろん,私はしょせん素人なので,根本的に勘違いしているのかもしれません。それでも「恐ろしいな」と思ったのが,浴室でキレイなカラダをしている人を見かけないことなのです。
たしかに「前腕が太い」とか「肩の筋肉がガッシリしている」という常連さんは何人もいらっしゃるのですが,全身を頭からつま先まで拝見すると「なんか変じゃない?」って感じるのです。違和感の原因は,おそらく均整が取れていないからだと思います。
もしかしたら,女性向けの施設なのかもしれませんね。いやはや,見学のときにはぜんぜん気づきませんでした。
この先,どうなることやら。
2008-05-18 某公衆便所―真っ赤なランジェリー―
夕刻,市内某公衆便所を調査してきました。便所の写真を撮ってきたので,写真を交えて最近の動向をお話します。
私はたまに「なぜそこまで調査熱心なのか」と尋ねられることがあります。そこにおさかん地帯と化した便所があるからなのです。それ以外の理由はありません。調査結果にもたいした意味はありません(ふめい)。
<画像の説明>今日,調査した公衆便所です。市街地の一角でひっそりと人々の排泄の世話をしています。また一部の嗜好家たちの社交の場でもあります。
真っ赤なランジェリー
私は個室に入ってみてドキっとしました。同時にニヤリとしました。
<画像の説明>個室のドアのフックに真っ赤なブラジャーが吊るされていました。おそらく女装子から個室へのお供え物なのでしょう。この便所には自縛霊でも居るのでしょうか。
キャンドゥで売っているような安っぽい下着でしたが,私はこの試みを評価したいと思います。この手の場所ではとかく雰囲気作りが大切なのです。「盛り上げたい」という情熱が伝わってくるかのようでした。
ぼくはみんなの公衆便所です
個室の壁にはびっしりと落書きがありました。いくつかご紹介しましょう。
<画像の説明>「(私は)みんなの公衆便所です オシッコのみます ○○○○のみます ケツマ○○に中○して下さい ユルユルのケツマ○○つかって ゆビは4本までなら入ります ア○○○○ストはまだむり」だそうです。できないことがあるのなら,最初から書かなければよいのに(←手厳しい)。それにこういう派手なことを書く人は,たいていとんでもない容姿なものです。
<画像の説明>この落書きは上の落書きへの返信です。「何曜の何時頃来たらいいですか?私は55才の優しい紳士です。(私のはとってもおいしいですよ)5/9」だそうです。丁寧に噴出しまでつけちゃって,マメな性格の人なのでしょうか。
さて,私は長年この便所を調査していますが,この便所の落書きにはある特徴があります。返信に「何曜日ですか?」というように,曜日を指定していることがよくあるのです。ほかの便所ではもっぱら日付と時刻を指定するのに,この便所だけに曜日が出現します。週単位で行動する習慣のある人たちが,利用しているのでしょうか。詳しいことはまったく分かっていません。
年の問題を克服
便所の住人たちにパラダイムが到来したようです。
<画像の説明>「2008.4.30 10代から35才位までのスリムな子 最高のフ○○してあげるよ 俺は50代前半 会える日時を書いておくように」だそうです。私ね,日付にきちんと「年」を書いていることに感心しました。この便所の落書きは,ほとんど消されることがありません。ものによっては1年前の落書きが鮮明に残っているのです。そうなると「4.30」だけでは,今年なのか去年なのか分からないのです。
私はこの便所の住人たちが,いつになったら年の表記を発明できるのか,以前から興味がありました。ついに「パラダイム」が到来したようですね。変則事象を発見して危機に陥り,さらにはパラダイムによって危機を克服したのです。
なんとすばらしいのでしょうか(ふめい)。これだから私は便所の調査を止められません(←病気)。
2008-05-17 筋トレの真似を再開
こんばんは,ただいま午前0時です。さきほど市内某スポーツクラブで美容体操をしてきました。そろそろ寝ます。
さて,しばらく筋トレの真似の報告をしていませんでしたね。じつは昨年末に6年間通っていた某スポーツクラブを脱会しておりました。どうも,お引越ししてから通うのが辛くなってしまったのです。以来,筋トレの真似をしておりませんでした。
<画像の説明>思わせ振りな画像ですが,気にしてはいけません。いつもの作戦です(ふめい)。
――新たに通い始めたスポーツクラブの感想を少々。
今日は美容体操の日
私にとって新しい某スポーツクラブに通うのは,今日が初めてでした。しばらく運動していなかったので,いきなり負荷の高い運動はできないと思って,ストレッチしたり歩いたりしてきました。
某スポーツクラブには,ストレッチする場所が2箇所あります。ストレッチマットの近くにはテレビが置かれていて,ストレッチのビデオが流れていました(どこも似たようなものでしょうけれど)。私は,テレビの中のお姉さんと一緒にストレッチをすることにしました。
ところで,テレビの中のお姉さんとストレッチをしていたのは私だけでした。ほかの人たちは,ことごとくお姉さんの存在を無視していたのです(なぜなのでしょうか)。そもそもストレッチコーナーって,どうも不人気らしくあまり活用されていませんでした。
たぶんみなさん,恥ずかしい格好を見られるのが嫌なんだと思います。ストレッチって,ひっくり返ったり四つん這いになったり,無防備な姿をさらけ出さなければなりません。私はあの程度の恥ずかしいことなんか,へっちゃらなのです(←何の自慢にもならない)。
傍から見ると間抜けなのかもしれませんが,ストレッチってとっても気持ちがいいんですよ。やったことがない人は,やってみてくださいね。オラオラ(なぞ)。
いちおう控えめにしました
私,筋トレの真似をするときは,格好がかなり派手です。服装とタオルの色は「黄色」「ピンク色」「オレンジ色」のいずれかです。男性でそんな変な色の格好をしている人は滅多にいないので,かなり目立つのです。
上着は派手な色しか持っていないので,どうしようもないのですが今日は,タオルだけ地味な青色にしておきました。初日なのにいきなり蛍光ピンクのタオルをベンチに敷いて,ベンチプレスの真似をするなんて,とんでもないことなのです。そんなことが許されるわけがありません。
でも,我慢できるのはきっと最初だけです。以前もそうでした(ふめいすぎ)。
虹色反応を検出
美容体操している間,ジム内を眺めていたら市内某ばい菌部屋で見かけたことのある人を発見してしまいました。べつに親しい人ではないので話し掛けませんでした(話し掛けられても困るとは思いますが)。ほかにも何人かに虹色反応を検出しましたね。
ああいう場所での虹色反応にいちいち構っていると,肝心の「美容体操」や「筋トレの真似」が疎かになってしまいます。あまり気にしないようにしようと思います。
<画像の説明>以前お話した「収まりの悪い下着」です。光沢生地で見た目はきれいなのですが,肝心の機能性がいまいちなのです。いずれにしても,ロッカー室での下着姿に気を遣う日々が始まりそうです。
2008-05-11 Microsoft Money Plus Editionを使ってみたら
Microsoft Moneyはお金を管理するソフトです。お恥ずかしながら私,いままで資産の計算をまともにやったことがありませんでした。この頃,とりわけお金にすごく興味が湧いているもので,正確に計算してみることにしました。
はじめに言っておきますが,このソフトは「おすすめ」です。ちょっとネット機能の動作が不安定な気がしますが,肝心の金額の計算は正確なようです。気づいたことをお話します。
私の使い方
週末に給料明細やカードの請求書を見ながら,大雑把に入力しています。
買った物をひとつひとつ入力することもできるのですが,いきなり細かく入力しようとすると,途中で嫌になってしまいそうです。私はいまのところ,「せいぜい3か月単位で用途別に集計できれば上出来じゃないの?」くらいにしか考えていないのです。
Moneyがウリにしている機能のひとつは,オンラインの残高照会サービスです。銀行やクレジットカードの残高を自動で取り込めるのです。でも私はオンラインの照会サービスを使っていません。最初に設定した時点でうまく動かなかったので,そのままになっています。
そのうち入力するのが大変になってきたら,また挑戦するかもしれません。
通常版で十分
私はMoneyの「Plus Edition書籍付き版」を買いましたが,「書籍なし版」で十分だと思います。はっきり言って,あの解説本は役に立ちませんでした。
収入の「6割」を生活費に割り当てるそうです
最後に「感心」した機能の話を少々。
Moneyには予算を管理する機能があります。毎月の収入の使い道を計画して,実績と照らし合わせることができるのです。ちょっと感心したのは「6割の法則」という予算の管理方法です。
6割の法則とは「収入の6割を生活費に充てること。3割は最初からないものと思って貯蓄や投資に回しなさい。好きに使っていいお金は1割だけ」という経験則だそうです。(たいして難しい話ではありません。)
Moneyの「グループ予算」機能を使うと,月の収入を入力するだけで「6割の法則」に則って予算の配分を決めてくれます。「生活費はこれだけ。貯蓄はこれだけ。老後資金はこれだけ」という具合に具体的な金額が出てくるので,それを目安にすればお金を上手に使うことができそうなのです。
私の場合,近いうちに自動積立ての投資信託を買いたいと考えていました。ところが月々いくらなら投資に回せるのか,そもそもそんな元本保証のない金融商品をいま買って良いものなのか,ほとんど見当が付いていませんでした。グループ予算機能で計算してみたら,小額であれば積立て可能であることが分かりました。
2008-05-08 SP3の罠,NEC LaVie L LL550/7Dで“STOP: c0000139 Unknown Hard Error”が発生
NEC LaVie L LL550/7Dに「Windows XP Service Pack 3」を適用してみたところ,起動時に「STOP: c0000139 Unknown Hard Error」が発生し,Windowsが起動しなくなってしまいました。どうやら,本格的にお亡くなりになってしまったようなのです。
巷の情報に依ると,回復コンソールにてサービスパック適用前の状態に戻すことができるそうです。回復コンソールを立ち上げるには,Windows XPのCD-ROMから起動しなければなりません。しかし,NEC LaVie L LL550/7Dには,Windows XPのCD-ROMが同梱されていません。そういう仕様の製品なのです。
仕方がないので昔,使っていたWindows 2000のCD-ROMを使って回復コンソールを起動することにしました。モノはXPとあまり変わらないらしく,回復コンソールの起動に成功しました。
以後,「http://support.microsoft.com/kb/884090/JA/」どおりの手順を実施したところ(内容はSP2ですが,SP3でも有効だそうです),サービスパック適用前の状態に戻すことができました。いやはや,危ないところでした。
【追記 12 MAY 2008】 どうやら起動しない原因は,プロセッサがAMD製だからみたいです。
【追記 11 NOV 2008】 現在公開されているSP3は,AMDでも大丈夫みたいです。10月,NEC LaVie L LL550/7DにSP3を当ててみましたが正常に動作してくれました。
関連リンク
»固定リンク »410.コンピュータ »NEC LaVie L LL550/7D
2008-05-07 パパ出張レッスン―思わぬ進展―
以前,某駅前便所で知り合いになったパパと,Windows Vistaの使い方をお勉強することになった,というお話をしました。私は「パパ出張レッスン」と称して,パパがWindows Vistaを習得していく様子をご報告しました。
その出張レッスンに思わぬ進展なのです。
今度はネット証券
どうやらパパは,ネット証券で株の取引をしたいのだそうです。いままでは証券会社の窓口に取引を依頼していたそうですが,それでは余計な手数料が掛かってしまうのと,いま巷で流行っているみたいだから,自分もネットで株取引をしたいのだそうです。
私は「不思議だな」と思いました。私は2007年1月からネットで株取引の実験をしています。たしかにネットでの株取引のレッスンも可能なのです。でも,そのことをパパにひと言も言ったことがありません。なぜパパは,私の裏の顔(なにが表でなにが裏なのか分かったものではありませんが←ふめい)を知っているのでしょうか。
パパとのお付き合いはなんだかんだ言って長いので,普段の言動で大方の察しがつくのかもしれませんね。
まだ先の話
というわけで,近いうちにネット証券のレッスンをすることになったのですが,細々としたことは未定です。
ネット証券には何社かありますが,どの証券会社を選ぶのかはまだ決まっていません。もしかしたら,パパは日本株だけではなくて投資信託も買おうとするかもしれません。そうなると,ネット証券ならどこでもよいというわけにはいかないのです。
いちばんの問題は,私がいま日中お仕事をしていることなのかもしれません。市場が開いている時間帯には,レッスンできないのです。「資産の確認方法」「注文を出す練習」くらいしかできそうにないのです。
どうなることやら。