MFFマクロのOFXファイル出力機能

_MFFマクロの大きな特長として、家計簿アプリのデータをMFF形式に変換後、OFXファイル(後述)として出力する機能があります。2022年5月現在、OFXファイルを取り込めるPC家計簿ソフトで当Blogが対応しているのは

_の5つがあります(GnuCashのOFXファイルインポート機能は検証しておりません)

_以下、これらのソフト向けに出力するOFXファイルとデータ変換処理について解説します。

1.OFXファイルの概要

_OFXとはOpen Financial eXchange の略で、マイクロソフト, Intuit, CheckFreeが中心となり、金融情報の標準たるを目指して策定されたファイルフォーマットです…が、残念ながら我が国における一般的な認識は「マイクロソフトマネーにデータを取り込む際のファイル形式」です。数年前までは銀行のインターネットバンキングサイトでデータのダウンロードに対応していたところもあったのですが、2022年9月現在ではほとんど存在を確認できません。

(1)OFXファイルの構造

_ここではファイルの中身がどうなっているのかを極めて大雑把に解説します。まず、銀行口座向けの場合は以下のような構造になっています。

  • OFXヘッダ
  • 金融機関情報 <SIGNONMSGSRSV1><SONRS>
  • 預金口座情報 <BANKMSGSRSV1><STMTTRNRS><STMTRS>
    • 銀行口座番号・名義 <BANKACCTFROM>
    • 取引明細リスト <BANKTRANLIST>
      • 個別の取引明細 <STMTTRN>
        • 取引種目 <TRNTYPE>
        • 取引日時 <DTPOSTED>
        • 金額 <TRNAMT>
        • 取引番号 <FITID>
        • 摘要 <NAME> …マイクロソフトマネーの【支払先/支払元】欄になる
        • 備考 <MEMO> …マイクロソフトマネーの【備考】欄になる
      • 個別の取引明細 <STMTTRN>
    • 残高情報 <LEDGERBAL>

_次に、クレジットカード口座向けの場合は以下のようになります。

  • OFXヘッダ
  • 金融機関情報 <SIGNONMSGSRSV1><SONRS>
  • クレジットカード口座情報 <CREDITCARDMSGSRSV1><CCSTMTTRNRS><CCSTMTRS>
    • クレジットカード番号・名義 <CCACCTFROM>
    • 取引明細リスト <BANKTRANLIST>
      • 個別の取引明細 <STMTTRN>
        • 取引種目 <TRNTYPE>
        • 取引日時 <DTPOSTED>
        • 金額 <TRNAMT>
        • 取引番号 <FITID>
        • 摘要 <NAME> …マイクロソフトマネーの【支払先/支払元】欄になる
        • 備考 <MEMO> …マイクロソフトマネーの【備考】欄になる
      • 個別の取引明細 <STMTTRN>
    • 残高情報 <LEDGERBAL>

_このように、OFXファイルは本来は金融機関の口座の性質に応じてタグを変えて記述するように仕様が定められています。しかし、実際には、PC家計簿ソフトによっては銀行口座の記法でもクレジットカード口座へデータを取り込めたりすることもあります。

(2)OFXのバージョン

_OFXファイルの仕様には、

  • OFX1シリーズ:SGMLで記述する
  • OFX2シリーズ:XMLで記述する

_の2つがあり、その主たる違いはOFXヘッダにあります。MFFマクロのV1.80より前のバージョンではOFX2に対応したヘッダを使用していましたが、V1.80以降ではOFX1に対応したヘッダに差し替えてバージョンダウンしております。これは、てきぱき家計簿マム9がOFX1シリーズしか読み込めない(と思われる)ためです。

(3)<MEMO>タグについて

_「個々の取引明細」の備考欄たる<MEMO>タグは、家計簿ソフトごとに対応が大きく分かれます。

  • マスターマネー:OFXファイルに記述されていてもシカトする
  • Money通帳(姉妹ソフトである「あっと家計簿」含む):OFXファイルに記述されていてもシカトする
  • てきぱき家計簿マム:<NAME>タグの末尾に<MEMO>タグの中身を連結して(マムの)備考欄に取り込むが、20文字を越えた部分は切り飛ばす
  • MoneyPro:<MEMO>タグが存在するだけで取り込み時にエラーなる

_つまり、<MEMO>タグをまともに取り扱えるのはマイクロソフトマネーのみ、ということになります。そのため、MFFマクロではマイクロソフトマネー用とそれ以外のPC家計簿ソフト用のOFXファイルの出力方法を分けているのです。

(4)残高合わせ機能について

_OFXファイルには、明細情報を取り込んだ時点における、当該の口座の残高を示す情報が含まれています(上記の<LEDGERBAL>タグ。含まれない場合もあります)。しかし、この情報を解釈して処理できるのはマイクロソフトマネーのみのようです(資産一覧画面の”明細残高"という欄に反映される)。そこで、MFFマクロ(V1.80以降)では、後述するMode3でOFXファイルを出力する場合は、残高を設定するダイアログを表示しないようにしています。

(5)PC家計簿ソフトのOFXファイルへの対応状況をまとめると

_↓のようになります。OFXファイルの仕様決定メンバーたるMicrosoftが開発しただけあって、さすがにマイクロソフトマネーは成績優秀と言えます。

PC家計簿ソフトのOFXファイルへの対応一覧

2.出力するOFXファイルの種類とMFFマクロの変換動作について

_MFFマクロV2.00は以下の6種類のOFXファイルを出力できます。

  1. MSM-1-BK:マイクロソフトマネー用の銀行口座向けOFXファイルを出力
    (Mode1:OFXファイルのNAME欄に、MFF形式の「取引先欄」の文字列を入れる)
  2. MSM-1-CC:マイクロソフトマネー用のクレジットカード向けOFXファイルを出力
    (Mode1:OFXファイルのNAME欄に、MFF形式の「取引先欄」の文字列を入れる)
  3. MSM-2-BK:マイクロソフトマネー用の銀行口座向けOFXファイルを出力
    (Mode2:OFXファイルのNAME欄に、MFF形式の「費目甲・乙」の文字列を入れる)
  4. MSM-2-CC:マイクロソフトマネー用のクレジットカード向けOFXファイルを出力
    (Mode2:OFXファイルのNAME欄に、MFF形式の「費目甲・乙」の文字列を入れる)
  5. OFX-3-BK:「マイクロソフトマネー以外の家計簿アプリ」用の銀行口座向けOFXファイルを出力
    (Mode3:OFXファイルのNAME欄のみを使用し、MEMO欄を使用しない)
  6. OFX-3-CC:「マイクロソフトマネー以外の家計簿アプリ」用のクレジットカード向けOFXファイルを出力
    (Mode3:OFXファイルのNAME欄のみを使用し、MEMO欄を使用しない)

_さらに、OFXファイルを出力する際には、MFFマクロは収入・支出取引と振替取引では異なる変換処理を行っています。以下に解説します。

(A)MSM-1-BK・CCの収入・支出取引

_マイクロソフトマネーにMode1で収入・支出取引を取り込む際の変換処理です。

(B)MSM-2-BK・CCの収入・支出取引

_マイクロソフトマネーにMode2で収入・支出取引を取り込む際の変換処理です。

(C)MSM-1-BK・CC および MSM-2-BK・CC の振替取引

_マイクロソフトマネーに振替取引を取り込む際の変換処理です。実際には、マイクロソフトマネーに取り込んだ直後は収入または支出取引として扱われます。その後、ユーザーが摘要欄に入っている★支出元→入金先 の情報をもとに、振替取引(マイクロソフトマネー用語では”資産間移動”という)に修正しなければなりません。

(D)OFX-3-BK・CCの収入・支出取引

_マイクロソフトマネー以外のPC家計簿ソフトに収入・支出取引のデータを取り込む際の変換処理です。OFXファイルのMEMO欄を使用せず、NAME欄に全ての情報をたたき込んでいます。

(E)OFX-3-BK・CCの振替取引

_マイクロソフトマネー以外のPC家計簿ソフトに振替取引のデータを取り込む際の変換処理です。こちらも(D)と同様に、OFXファイルのMEMO欄を使用せず、NAME欄に全ての情報をたたき込んでいます。また、(C)と同様に、家計簿ソフト側で収入・支出取引として取り込んだデータを、ユーザーが振替取引に修正しなければなりません。

3.OFXファイルを出力する操作

_まず、適当な家計簿ソフト/アプリのデータをMFF形式に変換したデータを用意します。ここでは↓のようなサンプルを使います。

_MFFマクロのV1.50以降では、MFF形式のデータが単一の口座で構成されているか、D列の「口座名」欄をオートフィルタで一つの口座に絞っていなければOFXファイルを出力できないようになっています。↑のデータは複数の口座で構成されているので、オートフィルタで「91データ用」の口座名で絞り込みます↓。

_この状態で、B1セルのドロップダウンリストでOFXファイルの出力形式を選択します↓。MFFマクロV2.00では6種類あり、それぞれの詳細については前述のとおりです。

_セルカーソルをB1に合わせた状態でMFFマクロを動作させます↓。OFXファイルとして出力するデータに付与する口座番号を尋ねてきます(「91テスト用」という口座名称の先頭"91"がデフォルトになります。マイクロソフトマネーにデータを取り込む際に、取り込み先の資産に予め設定してある口座番号に合わせて指定して下さい)。ここでそのまま【OK】を叩くと、次に、口座番号91の残高(マイクロソフトマネーの「資産一覧」における「明細残高」に相当する)をいくらにするか尋ねてきます。この「明細残高」は家計管理上はさして重要ではないので【OK】を叩いて無視してかまいません。

_↑最後に、OFXファイルのファイル名と保存先フォルダを尋ねてきます。適当に指定するとOFXファイルが出力され、拡張子.OFXに関連付けられた家計簿ソフトが起動します。その後の操作については、それぞれのPC家計簿別の解説記事をご覧下さい。

注目の記事

家計簿アプリとデータをやりとりする際のファイル形式のまとめ

_今回の主題は…家計簿アプリとデータをやりとりするときに使用するファイルの形式について、です。筆者がこれまで MFFマクロ に対応させてきた家計簿アプリは27種類(Money通帳とあっと家計簿は別カウント)。まず、家計簿アプリからエクスポートする方向では↓のようになります。...

最近の人気トップ3