• MSからの設定X

今年9月から配布が始まったOfficeのバージョン2309(ビルド16.0.16827.20056以降)では、「自動データ変換」を制御することが可能になった(写真01)。これは、昨年からOffice Insider(現Microsoft 365 Insider)でプレビューが行われてきた機能である。この機能には、自動データ変換をオフにするだけでなく、CSVファイルの読み込み時に発生した自動データ変換を確認する機能も含まれている(写真02)。リボンのデータタブにあるファイルのインポート機能(データの取得 ⇒ ファイルから ⇒ テキストまたはCSVから)では、Power Queryを起動して読み込み形式を列単位で制御できる。

  • 写真01: リボンのファイルタブにある「オプション」を開き「データ」を選択すると「自動データ変換」の設定がある。標準値の動作はこれまでと同じ。機能をまとめて、個別にオフにすることができる。下の「追加オプション」を有効にすると自動変換有効時に確認のメッセージボックスを表示し、変換するかどうかを選択できるようになる

  • 写真02: 自動データ変換が有効な場合にCSVファイルを読み込み、自動データ変換が発生すると、このような確認のメッセージボックスが表示される。「変換しない」を選択することで自動データ変換を無効にできる

自動データ変換は、複数のルールからなっており、たとえば1文字目がハイフンだと必ず負数として解釈してしまうので、「-21ABC」と入れると数式エラーになる。文字列として入力したければ、先頭にシングルクオートを付けて「'-21ABC」とする必要がある。

こうした自動データ変換の1つに「日付」の解釈機能がある。Excelでは、「シリアル値」として日付をセルに記録するようになっている。シリアル値では、時間を小数点以下の数値で、日付を1900年1月1日からの経過日数を使って整数部で表現する。シリアル値を直接ユーザーが入力するのは困難であるため、日付として解釈できる文字列は自動的にシリアル値に変換する。たとえば、日本語版Excelでは、「1月2日」とセルに入力すると、2023年1月2日を表すシリアル値(44928)に変換される。

日付の表現は国や地域によって異なり形式は基本的にはシステムのロケールに従う。しかし、Excelの場合、どのロケールでも常に英語の日時表現を受け付ける。たとえば、日本語版でも「jan2」と入力すると、同じく2023年1月2日を表すシリアル値(44928)に変換が行われる。英語の日付表記を知らないと、かなり「想定外」だ。

この自動データ変換のプレビューを開始することを報告するBlog記事 Control data conversions in Excelには、「We have consistently heard from customers over the years (and likely from some of you!) that they’re frustrated by the fact that Excel automatically converts data to specific formats」(私たちは、お客様が長年にわたって一貫してExcelがデータを自動的に変換することを不満に感じていることを聞いてきました)とあり、マイクロソフトは、長年、そうした不満があることを知っていたが、2022年になるまで対応することは行われなかった。前述のPower Queryやシングルクオートなど一応の解決策があったからだろう。

ExcelのWindows版は1987年に登場していて、日付の自動データ変換は、初期の頃から搭載されたExcelの特徴の1つだった。シリアル値で日時を表すのはライバルのLotus 1-2-3(1983年)由来の機能だが、MS-DOS版の1-2-3では日付をシリアル値で入力するか、日付関数などを使う必要があった(のちのバージョンでは1-2-3も自動データ変換に対応したと記憶する)。マイクロソフトは1982年にMultiplanという表計算アプリを開発したがLotus 1-2-3には勝てず、その巻き返しとしてWindows 2.xのリリースに合わせてExcelを開発した。

自動データ変換の設定により、互換性の問題が発生することは懸念事項だ。現状、VBA側では、自動データ変換の設定を制御できないため、設定を有効にすることで自動データ変換に依存しているデータを扱うマクロや、外部プログラムからの制御(Power Automateなど)で行われる自動処理の結果が異なる、エラーになる可能性がある。ユーザーがリスクを考慮して設定してくれ、ということだろうが筆者は有効になったと知った直後にオフにした。

昨年、この自動データ変換制御のプレビューが開始された直後に遺伝子情報の命名ガイドラインが変更され、Excelで自動変換されてしまうような名前は避けることが例示された。実際、すでに付けられていた名前が日付に自動変換されるという理由で変更されたという記述もある。

いまやExcelはビジネス用だけでなく、科学技術分野全般で使われており、Excelの自動データ変換で「誤変換」された情報が、他のソフトウェアなどに渡されてしまう可能性がある。科学技術分野だからといってExcelに精通していない「カジュアル」なユーザーが存在しないわけではない。こうした誤情報の連鎖が何を引き起こすのかは予測もつかない。マイクロソフトも放置はそろそろ「ヤバイ」と感じたのだろう。しかし、できればもう20年ほど早く対応してほしかった機能である。

Excelといえば「セル」だが、セルには細胞という意味もある。細胞といえば思い出すのが、1982年の映画“The Thing”(邦題:遊星からの物体X)。俗に言う「バイオSF」映画の1つの頂点となる映画だ。本作は、1951年の同名の映画(原題は“The Things from another world”)と同じくジョン・W・キャンベルの“Who Goes There?”(邦題:影が行く)の2回目の映画化である。2回目も邦題は最初のものを継承した(原作の邦題と比べると映画の邦題は格段にいい)。1951年版はストーリーとしては恐怖を感じるものの、映像的にはそれほどでもない(白黒時代の映画である)。しかし、本作の映像は「見ただけ」でもう怖い。