←前回の記事:2021/11/22 ついにGnuCashに対応 MFFマクロV2.27出現
_今回は、MFFマクロ(V2.27以降)を使用して、MFF形式のデータをGnuCashにインポートする手順をご紹介します。記事にすれば割とあっさり終わりますが、この機能を実装するには大変な手間がかかりました。
_しかも、今回の記事を執筆中に、MicrosoftがOfficeソフトを更新して画面デザインを変えやがったため、画面例のキャプチャを全てやり直しする羽目になりました。ここのところ筆者の身にはロクなことが起きません…(泣)。
_なお、Excelの更新によって、クイックアクセスツールバーが標準では非表示になりました。これは非常に困るので、Excelで【ファイル】タブ>【ホーム】メニュー>【その他…】サブメニュー>【オプション】を選択し、Excelのオプションダイアログ内の【クイック
アクセス ツール バー】設定画面で□クイック アクセス ツール バーを表示する
のチェックBOXをONにして、MFFマクロ動作用のアイコンを表示するように設定してください。
1.MFF形式データをGnuCashにインポートできる形にする
_サンプルのMFF形式データは、実はGnuCashからのエクスポートのテストに使用したものを利用します↓。セルに色をつけているのは説明を判り易くするためで、本来のデータにはありません。各色はそれぞれ
-
2021/10/22の緑色系のデータ:給与明細
-
2021/10/26の黄色系のデータ:クレジットカードによる買い物
-
2021/10/28の青色系のデータ:お土産を現金・Suica併用で買った
_という取引を示しており、いずれも「明細分離用」という仮想の口座を設定して疑似的に複合仕訳を実現しているものです
(家計簿アプリを活用するうえでの典型的な手法ですね)。よって、これらは当然スプリット取引としてGnuCashにインポートさせたいところです。
_そこで、MFFマクロV2.27では、MFF形式のL列を「スプリットフラグ」というデータ列として使用します(L列は、本来はMFFマクロのACF機能用ですが、GnuCashはインポートの際に勘定科目の対応関係を設定する機能があるのでACFを使う必要はありません)。スプリットフラグとは、MFF形式の複数のデータがスプリット取引を構成していることを明示するための自然数で、ユーザーが以下のように入力します。
-
同じ日付で、同じ口座名の複数のデータに入力する。↓の2021/10/28の例のように、振替取引が複数含まれていても構わない。
-
支出欄・収入欄の総額がそれぞれ同じになるようにする。↓の2021/10/26の例では支出・収入とも計1133円。
-
親取引(これは1つだけ)となるデータ行に1を、子取引となるデータ行(これは複数)に2以上の自然数を入れる。子取引全てを2と指定しても、2以上の連番としてもかまわない。また、同じ日に複数のスプリット取引が発生する場合は、100の位を異なるものにする(101を親として、子を102~199とする。200台・300台…でも同様)。
-
親取引は、対象となる複数の取引の中でそれを代表するものを指定する。例えば↓のデータ例では2021/10/22の給与明細であれば、「明細分離用」口座から「あの筋銀行」口座に300,000円が振り込まれた体になっている取引が該当する。
-
スプリット取引に含まれる振替取引に対しては、反対取引(↓の画面でグレーに塗った行)の方にはスプリットフラグは入れないこと。また、そのような反対取引はデータ変換の処理対象外となる。反対取引が無いデータであればそのままで良い。
-
スプリット取引にせず、通常の取引データとしてインポートさせる場合はスプリットフラグ欄には何も入れない。
_↓の画面例の①のようにスプリットフラグを入力し、②D1セルのプルダウンメニューでGnuCashと設定し、③セルカーソルをD1セルに合わせた状態でMFFマクロを動作させます。
_なお、マクロを動作させる時点では、オートフィルタの絞り込み機能は使用しないようにしてください(オートフィルタ機能を解除しろということではなく、絞り込みをするな、という意味です。絞り込んでいる場合はMFFマクロが強制的に解除します)。これは、MFFマクロが処理の途上でMFF形式データを(日付とスプリットフラグをキーにして)昇順ソートする段階があるのですが、その際に絞り込みをかけているとExcelが「表示中の行だけでソートする」という動作をして、スプリット取引のデータ行が不連続になる場合があるためです。