_MFFマクロは、MFFマクロの導入法と使用法のページで解説しておりますとおり、Excelのクイックアクセスツールバーに「MFF」と「ACF」の2つのサブルーチン起動ボタンを設定し、それぞれの起動ボタンを叩いた時点におけるワークシートの状態に応じて動作を変える、という考え方で構成しております。これにより、
- 家計簿アプリAからエクスポートしたデータをMFF形式に変換する
- MFF形式の家計簿データを加工する(これは主にACF機能が担う)
- MFF形式のデータを家計簿アプリBにインポートするためのファイルを出力する
_という3段階の操作を1つのマクロプログラムで実現しています。

_しかし…
- どのような状態のときに
- どのような操作を行うと
- どんな動作をするのか?
_ということをまとめて解説してはおりませんでした。このページでは、その点について説明しています。
1.Excelで家計簿アプリのデータを開いた状態からMFFマクロを起動した場合
_現状では、家計簿アプリからエクスポートされたデータは、Shift-JISでエンコードされていれば、Excelで直接開くことができます。その状態でMFFマクロを起動すると、ワークシート上のデータがどの家計簿アプリに由来するか(ここではそれを家計簿アプリAとします)を、主に第1行のデータタイトルから自動判別して↓のようにダイアログを表示します(例としてZaimのデータを使っています)。ここで【いいえ】を叩くと、MFFマクロは何も処理をせずに終わります。

_↑のダイアログで【はい】を選択すると、↓のようにMFF形式へのデータ変換が行われます。なお、列の幅は、変換が終わった後に筆者が調整して見やすくしてあります。

_なお、家計簿アプリAが「データを出力する際に対象期間を指定できない」仕様の場合(2022年9月現在では がまぐち君、あっと家計簿、オンライン家計簿うきうき、Dr.Wallet が該当する)は、↓のように、データ変換処理の前に、処理の対象期間を指定するためのダイアログを出すようになっています(がまぐち君 のデータを例にしています)。

_なお、MFFマクロが、データの由来を判別できなかった場合は、ワークシート上で日付・金額・内容が入力されている行・列をユーザーが指定することでMFF形式に変換できます。詳しくは 2022/03/28 金融機関からダウンロードした明細データをMFF形式に変換できるMFFマクロV2.33を公開しました を参照してください。
ちなみに、これらの方法でMFF形式へ変換すると、Z1セルに、変換元のファイルが入っていたフォルダ名が書き込まれます(この情報はACFを起動する際に参照します)。
2.空のワークシート上でMFFマクロを起動した場合
_空のワークシート(ただしMFF.xlsm上ではない)上でMFFマクロを動作させた場合は、MFFマクロに内蔵したプログラムでデータファイルを読み込みます。これは、
- UTF-8でエンコードされているテキストファイルをExcelで開くと文字化けする
- Excelでシートを読み込んだ際にセルに入った文字列を式と解釈しようとしてエラーになる
_といった問題を回避するために用意した機能で、ユーザーが指定したファイルのエンコードを自動判定してワークシートに読み込むようになっています(2022/04/12 MFFマクロV2.35出現 テキストファイルのエンコードを自動判定して読み込む機能を追加しました を参照)。
_具体的な操作は↓のとおりで、ここでは「毎日家計簿」のデータを例にしています。
_↓データがExcelに読み込まれました。読み込む処理はMFFマクロが行ったもので、そのままMFF形式へのデータ変換に移ります。
_↓MFF形式データに変換されました。
_なお、この方法でデータファイルを読み込む場合、↓の各ケースではファイル形式がさらに特殊であり、それぞれ個別に処理するようになっています。これらはファイル名でマクロの処理を分岐させているので、家計簿アプリが出力したファイルの名称を勝手に変更しないようにしてください。
- ファイル名に”Money Pro”が含まれている場合→Money Pro 由来と判断
- ファイル名に”daruma”が含まれている場合→DARUMA家計簿 由来と判断
- “akBackup”が含まれている場合→Money通帳 または あっと家計簿 由来 と判断
_また、ファイル名を指定するダイアログで【キャンセル】を叩いた場合は、MFF形式データを手入力するか尋ねるダイアログが出現します(そこでさらに【キャンセル】した場合は何も起こりません)。詳しくは 2022/05/29 MFF形式データを手入力する方法 を参照してください。

3.家計簿アプリのWeb版からコピーしたデータをExcelに張り付けた場合
_MoneytreeおよびマネーフォワードMEについては、ブラウザ上のWeb版からコピーしたデータを空のワークシートに貼り付けた後、MFFマクロを起動すると、一旦データを整形してから改めてMFF形式へ変換する機能を備えています。↓はMoneytreeのデータの例です。

_MFF形式に変換した後のワークシート↓です。

_詳細は以下の記事を参照してください。
4.MFF形式データから、家計簿アプリにインポートするファイルを出力する
_ここからは、ワークシートにMFF形式データが展開されている状態で、さらにMFFマクロを起動した場合の動作を解説します。
(1)CSVファイル出力
_まず、インポート先となる家計簿アプリ(ここでは家計簿アプリBと呼びます)に対応したCSVファイルを出力する際の操作と動作です。
_↓の画面例のように、①D1セルのプルダウンメニューからインポート先となる家計簿アプリBを選択し、②セルカーソルをD1に合わせたまま③MFFマクロを動作させます。すると、インポート用のファイルの出力先を尋ねるダイアログが出てきますので、④フォルダおよびファイル名を指定するとファイルが出力されます。なお、このダイアログで【キャンセル】を叩くとファイル出力は行われません。
_また、ファイル出力後、そのファイルがShift-JISでエンコードされている場合は(Excelで)開くか尋ねる⑤ダイアログが出現します(UTFでエンコードされている場合は単にファイル出力先を示しているだけです)、たいていの場合は開いたところで意味は無いので【いいえ】で逃げてください(主にMFFマクロのデバッグのための機能です)。

_なお、インポート先たる家計簿アプリBが(2022年9月現在で)以下の3種類である場合は、ファイルを出力する前に特別な操作が必要になりますので、それぞれの記事を参照してください。
- かけーぼ:2020/06/13 「かけ~ぼ」に、他の家計簿アプリのデータをインポートする(前篇)
- MoneyLink:2021/09/06 MoneyLinkその4:MFF形式から変換した明細データをアップロードする
- GnuCash:2021/11/17 GnuCashからエクスポートしたデータをMFF形式に変換する(前篇)
(2)OFXファイル出力
_OFXの何たるかについては固定ページMFFマクロのOFXファイル出力機能を参照してください。
_MFFマクロでOFXファイルを出力する際は、MFF形式データを「出力対象とする口座名一つのみ」で絞り込む必要があります。↓のように操作してください(家計簿アプリAのデータをMFF形式に変換した際に、オートフィルタを自動的に設定するようになっています)。

_1口座のみに絞り込んだら、①B1セルのプルダウンメニューで出力するOFXファイルの種類(MFFマクロのOFXファイル出力機能を参照)を選択し、②セルカーソルをB1セルに合わせた状態で③MFFマクロを起動します。
_MFFマクロは、口座名の先頭にある半角数字を口座番号として自動認識する機能がありますので、④のダイアログで「それでいいか?」と尋ねてきますので、それでよければ【OK】ボタン、口座番号を変えるのであれば入力して【OK】、OFXファイル出力そのものを取りやめるのであれば【キャンセル】ボタンを叩いてください。
_また、⑤のダイアログは、④で指定した口座番号に対して、現時点における残高を指定する機能です(この機能に対応できる家計簿ソフトは筆者の知る限りではマイクロソフトマネーのみです)。この機能に特に用事がなければそのまま【OK】を叩いてください。【キャンセル】を叩くとマクロの処理はここで終わります。
_そして⑦のダイアログは…これはMFFマクロが表示したものではなく、PCにインストールされているマイクロソフトマネーが表示したものです(マイクロソフトマネーが起動していなくても出現します)。OFXファイルが他の家計簿ソフト(例えばてきぱき家計簿マム)に関連付けられている場合はそのソフトウェアが起動します。その後はそれぞれの家計簿ソフト上でデータ取り込みを行ってください。

5.MFFマクロの便利機能を使う
_MFFマクロV2.38から新設した「便利機能」は、MFF形式データが展開されているワークシート上で、F1セルのプルダウンメニューから使用する機能を選択し、F1セルにセルカーソルを合わせたままMFFマクロを起動すると動作するようになっています。

_2024年8月現在で実装しているのは以下の2つです。詳細はそれぞれの記事をご参照ください。
- レシート単位でソート:2022/09/17 Dr.Walletのデータを、順序が変わらないように「らくな家計簿」にインポートする方法を検討する(前篇)
- MFF形式データを比較:2022/09/03 MFFマクロV2.38の便利機能:「MFF形式データの比較」について
- 文字変換:MFF形式データの口座名・取引先・内容・メモ欄の@マークは変換せず、半角スペースは削除します。シート全体の半角カナを全角にします。
- 負の金額の解消:収入欄に負の金額が入っている場合は正の金額の支出に、支出欄に負の金額が入っている場合は正の金額の収入にします。
6.ACF機能を使う
_ACF機能については、固定ページACF(費目・口座変換支援)機能の動作と操作法と、以下の2篇の記事を参照してください。
- 2022/09/17 Dr.Walletのデータを、順序が変わらないように「らくな家計簿」にインポートする方法を検討する(前篇)
- 2022/09/18 Dr.Walletのデータを、順序が変わらないように「らくな家計簿」にインポートする方法を検討する(後篇)
_ACF機能を動作させる方法のみ、ここで挙げておきます。
(1)起動動作
_ワークシートにMFF形式データを展開している状態(A1セルが"MFF"になっていることをもって判断している)において、D1セルのプルダウンメニューで費目・口座名の変換先となる家計簿アプリBの名称(↓の例では「らくな家計簿」です)を選択し、セルカーソルをD1セルに合わせたままACF機能を起動します。
_すると、家計簿アプリBに対応したカテゴリーリストがどのフォルダにあるかを尋ねるダイアログが出現します(画面例はここでは省略します)。ただし、前述のように、変換元たる家計簿アプリAのデータをMFF形式に変換した際に、元のデータファイルが入っていたフォルダ名をZ1セルに書き込んであれば、MFFマクロはそのフォルダ内にカテゴリーリストのCSVファイルが存在するかどうかを調べ、見つかればダイアログを出してこないようになっています。

(2)反復動作
_ACF機能の反復動作をさせるには「A1セルが"ACF"であり、かつ、A1セル以外にセルカーソルがある」状態で、クイックアクセスツールバーのACFのアイコンを叩きます↓。反復動作では、ユーザーが行った費目・口座名の変更をすべてのデータに反映させ、変換リストのCSVファイルにその情報(変換ルール)を書き込みます。

(3)最終動作
_ACF機能の最終動作をさせるには「A1セルが"ACF"であり、かつ、A1セルにセルカーソルがある」状態で、クイックアクセスツールバーのACFのアイコンを叩きます↓。ACF機能は、変換リストのCSVファイルを書き込み、A1セルを"MFF”に戻します。なお、D2セル("口座名”が入っている)とE2セル("取引先"が入っている)は濃いオレンジに塗ったままにしています。

_その後、MFF形式データからZaimおよびDr.Walletにアップロードするファイルを出力する際は、MFFマクロはD2セルが濃いオレンジに塗られていることをもって「ユーザーがACF機能を使用した」かどうかを判断します。この2つの家計簿アプリは、ACF機能で費目および口座名を整えずにデータをアップロードすると大変なことになるので、その形跡が無い場合は「本当にそれでいいか?」と念を押すダイアログを表示するようにしています。
7.MFF形式データを加工する
_ 2022/05/29 MFF形式データを手入力する方法 と重複しますが、MFFマクロの動作のみ改めて解説します。
_まず、↓の画面ですが、MFF形式データの第1列(日付欄)にセルカーソルがある状態でMFFマクロを動作させると…

_下の行に、同じ内容の行が青い文字で追加されます↓。

_また「A1セルが"MFF"であり、かつ、A1セルにセルカーソルがある」状態でMFFマクロを動作させると、MFF形式データの再計算処理を行います↓。
_これは、データに含まれる振替取引の整合性チェック(本来の取引データと反対取引の双方で、日付・金額・振替元&振替先口座名が整合していることを確認する)、口座名の抜けのチェックと、N列・O列の金額の再計算を行う機能で、実はMFFマクロが家計簿アプリAのデータをMFF形式に変換した後に必ず行っています。

_この再計算機能を活用すると、例えば、過去のバージョンのMFFマクロでMFF形式に変換したデータを保存してあった場合に、新バージョンのMFFマクロを適用した形にワークシートを更新することができます。