旧バージョン互換に変換¶
場所: リボン EGTools タブ → EGTools グループ → スプリットボタンのドロップダウンメニュー
最新の Excel で作成したブックを旧バージョンの Excel で開くと、新しい関数が _xlfn.XLOOKUP のような
壊れたトークンとして表示され、#NAME? エラーになります。このボタンは、アクティブブックのすべての数式で
モダン/ネイティブ関数のトークンを EGTools 互換の関数名へ一括変換し、旧バージョンの Excel でも
数式がそのまま計算されるようにします。
動作手順¶
- 保存の確認 — 数式を直接変更するため、保存済みのブックでのみ実行されます。 未保存の場合は保存するかどうかを確認してから続行します(拒否/キャンセル時は中止)。
- 事前スキャン — すべてのワークシートの数式と定義された名前を読み取り専用で走査し、 変換対象の関数ごとの件数を要約して表示します。対象がなければ案内して終了します。
- バックアップ — 続行を選ぶと、変換の直前にバックアップファイルが自動保存されます
(ブックと同じフォルダー、
元の名前_egbak_<時刻>.<拡張子>)。バックアップに失敗した場合は変換しません。 - 変換と結果 — 変換した箇所の数とバックアップファイルのパスを要約して表示します。
変換ルール¶
| 対象 | 変換 |
|---|---|
| 一般の互換関数 | _xlfn.関数 / _xlfn._xlws.関数 / EG.関数 → 関数(EGTools のドロップイン名)。名前が衝突する SORT/FILTER/LET は xSORT/xFILTER/xLET に変換されます |
| IMAGE | _xlfn.IMAGE / EG.IMAGE → IMAGE |
| GROUPBY / PIVOTBY | 関数名を GROUPBY/PIVOTBY に変え、集計子の引数に引用符を追加します(SUM または _xleta.SUM → "SUM"。ネイティブ対応の集計子 16 種に限ります。LAMBDA などの場合はその数式には手を付けません)。後続の省略可能な引数があっても変換されます(引数の順序はネイティブと同一) |
_xlpm.*(LET/LAMBDA のパラメーター) |
最新の Excel が LET/LAMBDA のパラメーター名を保存する内部プレフィックスです。旧バージョンでは =_xlfn.LET(_xlpm.x, …) のように表示され、_xlpm. を含む数式は Excel が書き戻しを拒否するため、このプレフィックスを除去します(_xlpm.x → x)。変換の要約では _xlpm.* 項目として集計されます |
_xll.* / _xludf.*(アドイン UDF の保存プレフィックス) |
EGTools 関数が登録されていない環境で開いたブック(特に定義された名前)に残るプレフィックスを除去し、登録済みの EGTools 関数へ再接続します(_xll.xSORT(…) → xSORT(…))。他のアドインの関数には手を付けません。変換の要約では _xll.* 項目として集計されます |
文字列リテラルの内部や、他の識別子の一部は変更されません(識別子単位の置換)。
参考¶
- 元に戻すには組み込み関数に復元を実行するか、バックアップファイルを開いてください。
- 変換対象の関数リストはアドインの関数登録リストと単一ソースで管理されており、常に一致します。