リスト/配列セル → テキスト¶
場所: リボン EGTools タブ → EGTools グループ → スプリットボタンのドロップダウンメニュー
Microsoft 365 ベータ(バージョン 2610、ビルド 20520 以降)のセル内リスト/配列(Lists in Cells)は
リッチ値として保存されるため、旧バージョンの Excel(通常の Microsoft 365 を含む)では #UNKNOWN!
(Excel 2016 では #VALUE!)としか表示されず、項目を読み取れません。このコマンドは保存済みファイルの
richData を直接読み取り、各リストセルを下記のテキスト表記に書き換えます。変換後のテキストは
互換関数 HAS · HASANY ·
HASALL · FLATTEN で
評価できます(Microsoft 365 ではネイティブと共存するように EG.HAS のような EG. プレフィックスで登録されます)。
テキスト表記¶
| リストの形 | 表記 | 例 |
|---|---|---|
| 1 列のリスト(入れ子なし) | カンマ区切り — ARRAYTOTEXT の簡潔形式と同じ。項目に , ; { } " や前後の空白があるか、数値/TRUE/エラーとして読まれるテキストは "…" で引用(内部の " は "") |
Mon, Tue, Wed / "1,000", "TRUE" |
| 2 次元・入れ子の配列 | 配列定数形式 — ARRAYTOTEXT の厳密形式(テキストはすべて引用、空白なし、; が行・, が列)を中かっこの入れ子で拡張 |
{"a",1;"b",2} / {"a",{"b","c"},"d"} |
| 数値/論理値 1 項目だけのリスト | テキストではなく数値/論理値の値そのものとして書きます | 3, TRUE |
- 配列定数形式のテキストは、ベータ版 Excel で先頭に
=を付けるとそのままセル内配列数式になります。 - HAS 系関数は両方の表記を読み取ります。カンマ区切りリストや
{…}内の項目は、数値の形 → 数値、 TRUE/FALSE → 論理値、#N/Aなどのエラー名 → エラーとして読まれ、カンマも中かっこもない単一のテキストは 分類せずテキストのまま項目 1 個になります。引用符が閉じていないなど解析できない場合はエラーを出さずに 全体を項目 1 個として扱います。
動作手順¶
- ファイルの読み取り — 現在のブックのコピー(SaveCopyAs)を一時フォルダーに展開し、richData (リスト/配列のリッチ値)を読み取ります。未保存の編集もコピーに含まれるため、そのまま反映されます。
- 対象の確認 — リストセルがなければ案内して終了します。
- 確認ウィンドウ — 値のリストセル N 個を変換することを知らせます。数式結果のリストセルが M 個あれば
「それもテキストに固定しますか?」と尋ねます: はい = すべて / いいえ = 値セルのみ / キャンセル。
(数式のリストセルは
_xlfn._ARRAY(...)として保存されるため、旧バージョンではいずれにせよ#NAME?です。 いいえを選んで値セルがなければ終了します。) - 保存ゲート + バックアップ — 未保存の場合は保存するかどうかを確認し(拒否/キャンセル時は中止)、
適用の直前にバックアップファイルが自動保存されます(ブックと同じフォルダー、
元の名前_egbak_<時刻>.<拡張子>— 旧バージョン互換に変換と同じ手順)。 バックアップに失敗した場合は続行しません。 - 適用 — 下記のルールに従って各リストセルをテキスト(または値)に書き換えます。
- 完了ウィンドウ — 変換したセル数、スキップしたセル数(ある場合)、バックアップファイルのパスを案内します。
適用ルール¶
| 対象 | 処理 |
|---|---|
| 値のリストセル | 現在の値がエラー(#UNKNOWN!/#VALUE!)のセルだけをテキストに書き換えます。保存後に編集されてエラーでなくなったセルはスキップします |
| 数式のリストセル | 確認ウィンドウではいを選んだ場合のみ変換します。元の数式はセルのメモに EgListRemoved: <数式> として保存されます(既存のメモがあれば後ろに追記) |
| CSE 配列範囲 | 範囲全体を値に固定してから、そのセルにテキストを書きます |
| 数式/数値/TRUE として自動解釈されるテキスト | セルの表示形式を文字列(@)に変えてから入力します |
| 数値/論理値 1 項目だけのリスト | テキストではなく数値/論理値の値そのものとして書きます |
_array 以外のリッチ値(セル内の画像、リンクされたデータ型など) |
対象外です |
参考¶
- ベータ版 Excel でも同じコマンドが動作するため、共有前にあらかじめ変換する用途にも使えます。
- 変換後は HAS / HASANY / HASALL / FLATTEN で同じ結果が得られます。ブックがベータ版 Excel で
=HAS(...)のような数式で保存されている場合は、旧バージョン互換に変換が_xlfn.HAS・_xlfn._xlws.FLATTENトークンを EGTools 互換の関数名に変換します。 - 推奨の実行順序: ① リスト/配列セル → テキスト、② 旧バージョン互換に変換
(Microsoft 365 の非ベータ版では組み込み関数に復元)。この順序を守ることで
=HAS(...)のような数式が#VALUE!ではなく正しい結果を返します。数式結果のリストセルをいいえで 残した場合、その_xlfn._ARRAY(...)数式は旧バージョン互換に変換がARRAYTOTEXT(…,1)に変換します。 - 元に戻すにはバックアップファイルを開いてください。数式セルはメモの
EgListRemoved:の数式でも確認できます。