TOPに戻る
鬱るんです
躁鬱病のITエンジニア「はまー」が心と体の模様を記した雑記帳。 大手IT企業で心身ともにぼろぼろになり退職した後、ほそぼそと働いたり事業を立ち上げようとして頓挫したり、作業所に通ったり障害者雇用で働いたりと紆余曲折したが、今は無職な毎日。

長年、家計簿ソフトとしてMicrosoft Moneyを使ってきた。最初はExcelで自分で作ろうとしたが、けっこうめんどくさいのでフリーウェアを試してみて、なんかちょっと物足りない、とか思っているうちに、結局お金を出してこのソフトを買った。直接このソフト向けのデータをダウンロードできる金融機関のサイトも多く、私はクレジットの明細をダウンロードできるので重宝していた。

しかし、そのMicrosoft Moneyは開発が終了した。Microsoftのサポートも終了したが、金融機関からのデータのダウンロード機能は使えていたのでずっと利用していたが、それも2011年1月で終了するという。ちょっと困った。いや、ちゃんと明細と家計簿があっているか、目視で確認すればいいのだが、なんとかシステマチックにできないだろうか。

そう言えば、クレジット明細の画面からMoney用にファイルをエクスポートするだけでなく、CSV形式でもダウンロードできるのだった。一応毎月請求額が確定したらCSVファイルはダウンロードしているが、それを何かに利用するということはなかった。こいつをなんとかできないかな、と思ってやってみた。

MoneyにエクスポートされるファイルはOFXという拡張子のついたSGMLのファイルだった。今まで直接中を覗いたことはなかったので初めて知ったのだが、テキストファイルならファイル形式を解析して自動変換ができるはずである。ということで、数年ぶりにExcelのVBAでマクロを組んだ。

久しぶりだったのでいろいろ忘れていた。いやはや、Windowsでのプログラミングというのはなかなか融通がきかない。いっそのことPerlか何かで処理してしまいたかったが、Excel上で完結させたかったので、CSVファイルをダブルクリックして開き、個人用マクロブックのCSV→OFX変換マクロを実行すれば、ファイル形式を変換して「名前をつけて保存」し、Moneyを起動して取り込むところまでVBAでゴリゴリと書いた。何とか全部自動化できた。

これで他のソフトに乗り換えないで済むのだ。しかしプログラム書いたの、何ヶ月ぶりだろう。誰か仕事を恵んでください。


コメント

  • Mic 2011年1月9日 13:19

    こんにちは
    はじめまして
    同じようにmoneyを使っていて同じ壁で躓いていました。
    VBAのマクロプログラムを分けてもらえませんか?
    よろしくお願いいたします。

  • はまー 2011年1月9日 19:27

    Micさんこんにちは。
    カード会社によってCSVファイルのフォーマットが違うかもしれないので手直しが必要かもしれませんが、修正箇所の解説を一応つけたVBAを以下のURLに掲載しました。試してみてください。
    http://www.yet-another-world.jp/hammer/csv2ofx.html

  • Mic 2011年1月10日 10:36

    ありがとうございます。
    gooワンビリングからカード会社や銀行の明細をCSV形式でダウンロードできるので、これをofxに変換してマネーに取り込もうと思っています。
    これなら、
    gooワンビリング→csvファイルダウンロード→VBAで変換→moneyで読み込みできそうです。
    felica2やofxconverterなどのプログラムが公開されて入るものの、細かいところの設定がうまく行かず悩んでいた次第です。
    僕のレベルでは公開していただいたVBAのコードは難しいので自分用に改編するのはかなり時間はかかると思うのですがとても参考になります。
    頑張って改編してみます。
    ここ1週間ほどgoogleで検索していたのですが、やはり”Microsoft Money難民”が多数発生していて皆さん試行錯誤していらっしゃるようです。 残高照会が終了するこの月末には、おそらくはまーさんのプログラムに難民が押し寄せそうな気がします。

  • はまー 2011年1月10日 14:24

    Micさんこんにちは。もう読まれてないかな。
    公開したVBAにミスが見つかりました。
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    の行は、
    For i = Begin To Cells(Rows.Count, 1).End(xlUp).Row
    Se OutStream = Nothing
    の行は、
    Set OutStream = Nothing
    の誤りです。(汎用化しようと手を入れたのと、Web用に転記する際にHTMLタグを追加したときのミスです)
    公開したコードの方は修正しておきましたので、もしこれを読んでいたらご注意願います。

  • Mic 2011年1月10日 19:42

    ご連絡ありがとうございます。
    ずっと拝見させていただいています。
    僕は全く畑違いで、自動車の営業 いわゆるセールスマンですが、みんな苦労してるんだなぁ、つらいのは僕だけじゃないんだと思いブログ拝見させていただいていました。
    インターネットが普及していろんな出会いがあることに感謝しています。
    VBAのコードを拝見させていただいて、どうやって自分の使い方にあわせようか思案中です。 といっても判らないことがたくさんあるので、一行ずつ読んでいかなくちゃだめですが。
    とりあえずはCSVで取り込んだデーターは銀行やカードでそれぞれ別のフォーマットのようなので、どうすれば良いかを思案中です。
    また、コメントさせてもらいます。

コメントする

メールアドレスは公開されません

*は必須項目です