ML2AGR: MoneyLookの総合明細CSVからAgurippa形式への変換ツール
Gooのワンビリングサービスが'12/6に終了するということで、.NET FrameworkのDataSet、DataTable周辺の勉強もかねて、MoneyLookの総合明細CSVをAgurippa形式に変換するツールを作成した。MoneyLookの銀行総合明細、カード総合明細で一括ダウンロードした複数の金融機関、カード会社の明細CSVファイルを、Agurippa形式に変換できます。Felica2Moneyと併用すれば、Microsoft MoneyにMoneyLookの総合明細を取り込むことができます。というか、Microsoft MoneyにMoneyLookの明細を取り込むためのツールと思ってください。他のAGR形式をサポートしているソフトウェアでの検証はしていません。
ライセンス
フリーソフトウェアです。ご自由にお使いください。発生した不具合については、一切責任を負いません。動作環境
動作保証はしません。自己責任でお使いください。動作を確認しているのは、以下の環境です。他に、動作が確認できた環境があれば、連絡ください。- OS
- Windows 7 Home Premium SP1 (32bit)
- .NET Framework
- .NET Framework 4
上記の他、以下のOSでの動作が報告されています。
- Windows 8 Pro (32bit)
- Windows 8 Pro (64bit)
- Windows 8.1 (64bit)
Windows 10では、Microsoft Moneyが動かなくなるようですが、回避策が「Windows 10でMS Moneyが動くようになった」に記載されています。この対策をすれば、ML2AGRも動作すると報告されています。
ダウンロード
Microsoft SkyDriveからダウンロードしてください。ML2AGR_1_0.zipの方をお使いください。インストール方法
ダウンロードしたZIPファイルを展開した中のML2AGR_w_x_y_zの下のファイルを、適当なディレクトリにコピーして使ってください。設定ファイル
MoneyLookの総合明細でダウンロードできるCSVには、銀行の支店名、口座番号が含まれないため、変換時に定義する必要があります。その他に、いくつかの設定があり、これらを保存する設定ファイルが1つ作成されます。ファイルの場所は、以下です。- %USERPROFILE%\AppData\Local\ML2AGR\ML2AGR_Url_.....\x.y.0.0\user.config
注意:現在、このファイルは暗号化されません。そのため、金融機関名、支店名、口座番号がプレインテキストで保存されます。同じPCの管理者以外の他のアカウントからはアクセスできませんが、ウィルス等からは保護されていないと思ってください。
使い方
このアプリケーションを使うには、MoneyLook側の設定を工夫する必要があります。MoneyLook側の定義方法
MoneyLookの銀行総合明細CSVには、支店名やアカウント名が含まれないため、同じ金融機関の2つ以上の口座をMoneyLookで管理する場合、CSVでは区別がつかなくなります。このような場合は、名義人を異なる名前に登録してください。ML2AGRでは、金融機関名と名義人で口座を区別します。注意:名義人の文字列に","を使用しないでください。
クレジット明細も、同様にカード名と名義人の組み合わせでカードが区別されます。
総合明細のダウンロード
ML2AGRは、MoneyLookの銀行総合明細、カード総合明細の画面からダウンロードできる総合明細のCSVをAGR形式に変換します。全明細照会の画面のCSV出力ボタンで、CSV明細をダウンロードしてください。クレジットカード明細も同様です。口座明細の変換
ML2AGRを実行すると、CSVファイルを指定するダイアログが表示されます。ここで、上でダウンロードしたCSVファイルを指定してください。ML2AGRを初めて実行した場合、あるいは、指定したCSVファイルにいままでに登録していない銀行の明細が含まれている場合、銀行口座の情報を指定するダイアログが表示されます。表示された金融機関名は、ML2AGRでの金融機関名と名義人情報を組み合わせた名前になっています(例:三井住友銀行(本人))。それぞれの口座の支店名、口座番号名を入力してください。ここの指定が不正でも変換自体はエラーになりませんが、後でMicrosoft Moneyに登録するときにエラーになる可能性があります。間違えて登録してしまった場合も、修正可能です。修正方法は、後ろで説明します。
ここで登録した銀行口座情報は、以降の実行でも有効です。毎回登録する必要はありません。
クレジットカードでは、Microsoft Moneyへのインポートを簡単にするための設定をします。銀行口座の場合と同様、初出のアカウントを見つけると、ダイアログが表示されます。カードは、カード名と名義人で区別されます。このそれぞれに、短いニックネームを定義してください。ダイアログでは、ヒントと記載されています。Microsoft Moneyにインポートする際、カード名称が"XXXXX_ヒント"のように表示されますので、それを参考に資産名、カード名を定義することができます。ヒントの部分は、Felica2Moneyとの関係で入力したとおりには表示されないですし(数字が付加される)、ヒントが長いと最後の部分しか表示されませんので、自分で判別可能な短い文字列を登録してください。
これらを登録すると、変換が開始されます。CSVファイルが不正でなければ変換が完了し、指定したCSVファイルと同じディレクトリに変換ファイルが出力されます。拡張子が.CSVの場合、CSVがAGRとなったファイルが出力されます。拡張子がCSVでない場合、.AGRが付加されたファイルに結果が出力されます。出力ディレクトリは、設定により指定可能です。
出力ディレクトリに同名のファイルがある場合は、ファイルは上書きされますので、注意してください。
出力ディレクトリの指定
コマンドプロンプトから'/config'オプションを付けてML2ARGを起動してください。環境設定ダイアログが表示されますので、「変換結果の既定の出力ディレクトリ」の下のテキストボックスの右にある編集ボタンをクリックしてください。ディレクトリ指定ダイアログが表示されるので、そこで、ディレクトリを指定してください。このディレクトリで新しいディレクトリの作成はできないので、あらかじめ出力用のディレクトリは作成しておいてください。変換対象のCSVファイルと同じディレクトリにファイルを出力する場合は、上のクリアボタンを押下してください。
銀行口座情報の修正
銀行口座情報を間違えて定義してしまった場合は、コマンドプロンプトから'/config'オプションを付けてML2ARGを起動してください。環境設定ダイアログが表示されますので、「金融機関情報を初期化、修正する」の横の編集ボタンをクリックしてください。金融機関情報の編集ダイアログが表示されるので、そこで修正してください。この画面では、金融機関名も修正可能になっているので、注意してください。修正は、環境設定ダイアログのOKボタンをクリックした時点で、定義に反映されます。
エラー
対処不能なエラーが発生した場合は、その旨表示があるとともに、出力ディレクトリにテキストファイルのログが出力されます。Microsoft Moneyへの取り込み
変換したAGR形式のファイルをMicrosoft Moneyに取り込むには、Felica2Moneyによるもう一段の変換が必要です。注意:Microsoft Moneyへの取り込みはあまり検証されていません。新しい資産ファイルを作成して、そこに取り込んだほうがよいと思います。
変換後にAGRファイルを起動する設定にしておけば、変換後に自動的にFelica2Moneyを起動させることができます(Felica2MoneyをAGRファイルに関連付けておく必要があります)。コマンドプロンプトから'/config'オプションを付けてML2ARGを起動してください。環境設定ダイアログが表示されますので、「出力されたAGRファイルを実行する」のチェックボックスをチェックしてください。
kamekameworks@gmail.com (見ていない場合があるので、返事がない場合は、下にコメントをください)
はじめまして、かもめと申します。
返信削除もうあきらめるしかないか…、と最後に検索していたら、
こちらのサイトへ…。
早速試してみます!ありがとうございます!
素晴らしい。使える!! 多謝、多謝。
削除所で、何故MLから得られるCSVファイルはUTF-8なんでしょうか? 同一銀行・同一名義人・複数口座がありますので、名義を再定義する操作をエクセルで行うとS-JISになってしまい、再度UTF-8に戻す手間が増えます。もっともMLはコントロールできませんね。ならば、ML2AGRでS-JISでも構わないようにできませんか?
削除30口座以上を管理していて、今の所文字化け以外の問題はありません。この文字化けはMLからのCSVファイルがおかしいのだと思いますが....
勿論、素晴らしい作品。地獄で仏とはこのこと。大変有り難く使わせて戴きます。
Shift JIS対応はできたのですが、ちょいと別の不具合があり。少し待ってください。
削除Shift JIS対応版をhttp://sdrv.ms/MARTG3におきました。よろしければ、お試しください。
削除MsM(Microsoft Money)投資証券口座の「価格(株価)の更新」を半自動にできませんでしょうか? (例えばの話ですが)自分の保有株をYahooファイナンスで「ポートフォリオに追加」すると、銘柄と株価の一覧表ができます。この類の一覧データからMsMの株価の手動更新を自動化できないものかと。
削除MLからの総合明細にはShift-JISに変換すると"?"に化けてしまう文字が含まれています。これらはどのように前処理するのがよいでしょうか?
削除証券関係は、私がやっていないので、追加するつもりはありません。あしからず。
削除文字化けは、全角ダッシュが化けているんだと思います。UNICODEには全角ダッシュがいくつかあって、銀行によっては、Shift JISにマップされない全角ダッシュを使っているようです。私のところでは、これ以外の文字化けは見つかっていません。
文字化けの件、私の場合は(例えば)"カ−ド"の"−"。本来は"ー"がMLでは軒並み"−"になっており、S-JISでは"?"に化けます。"−"をエクセルの[置換]で"ー"に(手動で)置き換えることで訂正できますが、これを他の処理と一緒にマクロでやろうとするとマクロの中で"−"が"?"、即ちワイルドカードに化けてしまい、結果として全ての文字が"ー"になってしまいます。どうしたものか...。
削除たぶん、文字コードで指定するしかないです。ちなみに、ML2AGRないでは8722(十進)の文字を、"-"に変換して文字化けを減らしています。
削除Windows8での動作確認は如何でしょうか?
削除もっとも、Microsoft Moneyがどうかということもありますが。
Windows 8については、動作実績はありません。申し訳ないですが、確認の予定もありません。動いたら、その旨連絡いただけると、助かります。
削除どなたか Windows 8で確認された方はおられないでしょうか?
削除こちらによると、MoneyはWindows 8でも大丈夫なようですね。
削除http://c572.blog69.fc2.com/blog-entry-165.html
申し訳ないですが、Windows 8の環境を持っていないので、確かめられないです。
一度、Win8 ProのPCを購入して確かめてみようと思ってます。Win8で動作しない場合に備えて、win7 Proへのダウングレード権付きを購入予定。そこで質問ですが、Win8は64bit機が主流、その場合Win7にダウングレードしても64bit機、このツールはWin7 Pro(64bit)でも動作しますでしょうか?
削除.NET Framework前提なので、たぶん大丈夫なのではないかと思います。が、、、、確かめる手段がなく。すみません。
削除Lenovo X201(Win7 32bit)をWin8 Pro(32bit)にグレードアップ。まだ数例ですが動作しました。Win8 64bitは未確認。
削除Lenovo X201(Win7 32bit)にWin8 Pro(64bit)をクリーンインストール。動作しました。
削除Win8 Pro 64bit, 32bitで動作とのこと、連絡ありがとうございます!
削除Windows 8.1 Pro(64bit)も難なくクリア。
削除ありがとうございます。
Shift-JIS版ありがとうございます。これで一手間省けます。銀行口座の情報を指定するダイアログが改めて現れましたが、従前のuser.configの内容を新しいuser.configに貼り付けました。それでいいんですよね?
返信削除所で、クレジットカードですが、MLからは期間指定ではなく、例えば、6月分といったように月指定でCSVファイルをダウンロードできます。クレジットカードの場合は月指定のデータの方が利用価値が高いのですが、残念ながら期間指定とフォーマットが異なります。勿論、エクセル上で変換すればよいのですが、ML2AGRで直接月指定のCSVファイルで変換できるようになればもっと嬉しいてずすね。
ともあれ、Shift-JIS版、ありがとうございます。厚く御礼申し上げます。
設定の件、そうならないように設定が引き継がれるようにしたつもりだったのですが、、、。user.configの内容の貼り付けでOKです。
返信削除クレジットの月単位の件ですが、純粋に月単位のデータが欲しいのであれば、Microsoft Moneyのリポート画面からできるような気がします。請求単位ということであれば、Moneyからはできませんね。MoneyLookからクレジット会社ごとに、請求明細単位でダウンロードできるようですが、クレジット会社ごとにダウンロードするのがわずらわしくて作ったツールなので、これには対応する予定はないです。要望がたくさんあれば考えるかもしれませんが。
私目の錯覚がありました。確定分の範囲であれば、クレジットカード毎に請求単位で処理するのと、期間指定して処理するのと結果は同じでした。結果が同じなら、期間指定で処理した方が(仰るように複数カード一括なので)手間が省けますね。大変失礼しました。
削除これを未確定分にまで拡大するかどうかは資産管理の目的次第。より現在の(負の資産も含めた)資産をリアルタイムに近い形で把握できますが、反面明細の抜け落ちがあると、これを見つけにくくなりそうですね(確定分までなら、銀行から引き落とされた時点でゼロになるので、間違いないことの確認になりますね)。
ML2AGR_1_1(=beta)について教えて下さい。
削除Q1:このVersionはShift-JISでも有効でしょうでしょうか?
Q2:従前のVersionはUser.configがVersionに対応して複数生成されましたが、今度はどうなりますでしょうか?
やってみれば分かるのでしょうけどお教え戴ければ幸いです。
Shift JISに対応しています。User.configについては、バージョンアップで引き継ぐようにしたつもりなのですが、そうなっていないです。中身の設定部分をコピペしてもらえればと思います。
削除クレジットカードで請求日が(例えば)2012/5/10の明細はAGRファイルでは2012/10/5というように[yyyy/dd/mm]に変換されますが、それで宜しいのでしょうか?
削除一つ前のメールに記載した請求日の[yyyy/dd/mm]の件、私目の錯誤でした。スミマセン。
削除私の場合、名義人の再定義他をマクロで処理したCSVファイルをSaveAsで保存して、しかる後にML2AGRを利用させて戴いております。SaveAsで保存しますと日付が[yyyy/m/d]から(見かけは)[m/d/yyyy]の標準書式に変わってしまいますが、それでも問題なくAGRに変換できるようです。日付の書式が変わってしまっても問題ないと考えて宜しいでしょうか?
削除そのへんのCSVの読み取りは、Windowsのライブラリ任せなので、良くわかっていません。動いているなら、動くのかなぁ、としかいえません。申し訳ないです。
削除手動で名前を付けて保存する場合は[yyyy/m/d]形式は保たれますが、マクロのSaveAsで保存すると(見かけ)[m/d/yyyy](但し標準形式)に変わってしまいます。これが仕様なので仕方ないようです。Local:=Trueとしてもダメな場合があります。にもかかわらず、ML2AGRは正常に機能しているように思われます。ハテ?
返信削除クレジットカードの明細CSVのみ変換時にエラーとなるのですが?
返信削除クレジットカードも全明細取得で、CSVを作成されていますでしょうか?
削除最後まで対応できるか分かりませんが、下記をお試しいただけますか?
https://onedrive.live.com/redir?resid=86DA65E118CD8384%21238 に新しいバージョンをおきました。
ml2agr /configで、設定を作り直してください(申し訳なし)。
ml2agr /debugで実行すると、デスクトップにログファイルが生成されると思います。それで、最後がどんなエラーになっているか教えていただけませんか?
早速のご対応ありがとうございます。
削除クレジットカードも全明細取得でCSVを作成しております。
新しいバージョンですが起動すると
「処理できないエラーが発生しました...」
Object reference not set an instance of an object
at ML2AGR.MLARG.DoUpgrade()
at .....
となり起動できません。
またVer.1.0で/debugオプションをつけると何も起動してきません
(コマンドプロンプトからの起動でよろしいのでしょうか?)
ちなみに、Ver.1.0でのエラーは
「CSVファイルの読み込み中に例外が発生しました」
「明細ファイルの読み込み中に不明なエラーが発生しました」
となり
「処理できないエラーが発生しました。。。。。
一つ以上の必要なパラメータの値が設定されていません
at Sysytem.Data.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbResult hr)
at ....
というエラー表示がでます。
よろしくお願いいたします。
※ブログも興味を持って読ませていただいています
c:\users\ユーザ名\Local\ML2AGR\ML2AGR.EXE_Url_.....\1.2.0.0の下にuser.configというファイルがあると思います。
削除この中にIsFirstRunと書かれている行があります。この下の行にTrueと書かれていると思いますが、これをFalseに書き換えて、/debugをつけて実行してみてください。
感覚的には、CSVファイルに不正な文字が含まれているのだと思います。口座名に"や,が含まれているとか、明細中に普段使わない記号が含まれているとか。一度、眺めてみると怪しいところが分かるかもしれません。
カード明細は「確定」と「未確定」でCSVの項目が違うことに気がつきました。「確定」では請求日という項目が入っています。「未確定」の明細を使用していたのが原因ですね。きっと。お騒がせしました。
削除Windows10 Home 64bitで動作確認できました。途中、Win10でMicrosoft Moneyが動かずヒヤッとしましたが、下記で事なきを得ております。
返信削除http://kkamegawa.hatenablog.jp/entry/2015/07/30/051423
Microsoft Moneyに代わる日本語の資産管理ソフト未だ登場せず。ML2AGRに救われています。ありがとうございます。
おおお。なんと、Windows 10でもいけますか。連絡ありがとうございます!
削除Windows7でずっとお世話になっておりました。ありがとうございます。
返信削除Windows10 Pro 64bitを導入したところ、Microsoft Moneyは問題なく動くのですが、ML2AGRを起動すると、
オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 ML2AGR.ML2ARG.DoUpgrade()
場所 ML2AGR.ML2ARG.Initialize(String[] args)
場所 ML2AGR.ML2ARG.Main(String[] args)
というエラーメッセージが出ます。
「Windows 10でMS Moneyが動くようになった」のレジストリ変更も試しに行ってみましたが変わりないようです。
これは回避策はないのでしょうか?
お時間あるときにご教示いただければありがたいです。
お忙しいところ、すみません。
ご利用、連絡ありがとうございます。
削除多分、そこはあまりテストされていなかったかも。
回避策を考えますので、少し時間をください。
設定ファイルの場所はわかりますでしょうか?
削除その中に
True
という場所があれば、このTrueの部分をFalseにして実行してみていただけませんか?
設定ファイルは、ML2AGR.exe.configのことでしょうか。
返信削除1カ所「True」部分がありましたので実行してみましたが同様です。
%USERPROFILE%\AppData\Local\ML2AGR\ML2AGR_Url_.....\x.y.0.0\user.configを探してみたのですがML2AGRのフォルダがありませんでした。
また、Ver1.0.0の方で試しに起動してみたところ、動きました。
お忙しいところ、恐れ入ります。
1_2が上がってましたか。。中途半端なバージョンを提示していたかもしれません。失礼しました。
返信削除1_0をお使いください、と記しました。