2021/10/02

MFFマクロのソースコード公開にまつわる深刻な問題と対処法について

_先日、MFFマクロのあるユーザーの方から「V2.23でマスターマネー取込用のCSVファイルを出力させる際にエラーが発生する」というご連絡がありました。状況をうかがいますと↓のような事象と思われます。メッセージボックスを表示させる"MsgBox関数"を記述した行が"Ms"の位置で改行されており、これがコンパイルエラーを起こしています。

ソースリストをGoogleDriveサイトからVBEにコピペして実行させるとエラーが発生する

_筆者の環境では↓のように「謎の改行」は入っておらず、↑のエラーは再現しません。大変失礼ながら、当該のユーザーの方がソースコードをVBEにコピペする際に余計な改行を入れてしまったのではないか? と最初は疑いました。

VBEではMFFマクロのソースリストに異常は無い

_しかし、ここで『2020/06/28「MFFマクロのソースコードをVBEに貼り付ける際の不具合について」と似たような現象が発生しているのではないか?』と思い至り、当Blogからリンクしているソースコードをコピペで筆者の環境に導入し(通常は筆者は実施しない操作です)、動作検証をしてみました。

_↓は、筆者の環境におけるVBEのソースコードをテキストエディタにコピペした画面です。この段階で「謎の改行」は入っていません。

ソースリストをVBEから秀丸エディタにコピペしても異常は無い

_ところが、このテキストファイルをUTF-8でエンコードしてGoogle Driveにアップロードし、そのファイルをGoogle Driveのテキストビューアで表示させると…↓のように、冒頭のVBE画面と同じ位置で不正に改行されているのが判ります。どうやら、エラー発生の原因を特定できたようです。

ソースリストをGoogleDriveサイトで表示すると謎の改行が入る

_このような「謎の改行」が何故入ってしまうのか? 筆者はGoogle Driveのテキストビューアがテキストを分割して読み込む際に、その分割点となったところに勝手に改行を入れて表示しているのだろうと推測しています。この現象の対策としては、Google Driveのテキストビューアから(コピペではなく)【ダウンロード】ボタンを叩いてソースコードをPCにダウンロードします↓。

MFFマクロのソースコードはコピペではなくダウンロードで入手して下さい

_ダウンロードしたテキストファイルをメモ帳で開いたところです↓。「謎の改行」は入っていません。このソースコードを Ctrl+A と Ctrl+C で全コピーし、VBE上で Ctrl+V で貼り付ければ、少なくとも冒頭のようなエラーは発生しなくなります(他にバグがあるかもしれない、というリスクは残っています)

ダウンロードしたテキストファイルには謎の改行は入っていない

_ところで、冒頭のようなエラーは、MFFマクロのこれまでのバージョンでも発生しているはずです。では、なぜV2.23に至って発覚したのか? それは「謎の改行」が入る位置が、これまではたまたま「誰も使わない機能を実装するサブルーチン」であったのではないかと思われます(泣)。VBAはサブルーチンを実行する段階でコンパイルを行うからです。V2.23では、マスターマネー取込用CSVファイル出力サブルーチン(MFF2MM)から呼び出される「絞り込み口座名の取得」サブルーチンが「謎の改行位置」となって顕在化した、ということなのでしょう。

_ともあれ「Google Driveのテキストビューアからのコピペ」という導入手順は極めて不適切であることが判然としました。お知らせいただいたユーザーの方には大変感謝しております。これに伴い、「MFFマクロの導入法と使用法」のページを更新させていただきましたので、ご参照ありたく。

注目の記事

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

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

最近の人気トップ3