CSVファイルをExcelで開いた時の0落ちの話

# 0.後日譚
20250309時点

ここ数か月、Excelにアップデートがあったため困りごとの相談が減りました。
最初の1回だけ(?)、CSVファイルをExcelで開こうとすると下記のようなポップアップが表示されるようになりました。
「変換しない」を選択すると「0落ち」せず、Excelでも開けます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/dfd14cf9-0951-4d0f-bc05-1df76c25c3ab.png)

最初の1回、もしくは類似のファイルを開く時にこういうポップアップが表示されたら「変換しない」を押せばいいですね。
めでたしめでたし?





# 1.概要
## 1-1.前置き
基礎とかIT介護と呼ばれている部分の話、Excelの「0落ち」の備忘録です。
期待されているような真新しいことは書いていないです。
どうしてか定期的に発生するのでひとまず整理します。


## 1-2.「0落ち」の原因になるもの
Excelには、このセルのこの値は「数値」ですねと判断して、
「0123456789」のような値を「123456789」にしてくれる親切な機能が存在します。
こいつがすべての元凶です。

## 1-3.発生するタイミング
新人が来た時に定期的に、または急いでいる時にうっかり発生しています。
新人には、発生しそうな業務の絶妙なタイミングに教えてくれる親切な先輩がいるかいないかで、のちにやろうとしていた対応の苦手意識が全然違ってきます。

先輩から「エディタで開いてね～」と言われるこの一言がそれにあたりますが、
「じゃあ、具体的に何でこうなっていて、結果的にどうなるの?」までを教えてもらえることはあまり無いと思います。
~~この具体的にどうなって、結果的にどうの部分の資料で欲しかった。~~

過去に自分もやらかしていて、
新人の頃にcsvの読み込み機能があるHRシステムでマスタの更新をした後に発覚した1回。
急いでいてファイルを開ければ何でもいいという時に、デスクトップ上のアイコンをダブルクリック、標準で起動したExcelを意識せず、習慣でうっかりCtrl+Sで保存した時に数回発生させています。
~~前者の場合は業務的にアウト、後者はバックアップを取っているためセーフ。~~

# 2.準備
## 2-1.用意するもの
・サクラエディタ
・Excel
・てきとうなサンプルcsvファイル
　~~2-2で作成します~~

## 2-2.サンプルcsvファイルの作成
~~新年度に部署異動があったパターンで~~csv読み込み機能があるHRシステムで従業員情報を更新するユースケースを想定します。
登録された項目は「コード」と「名称」に分けて登録できるものを想定しています。
~~今回は所属拠点コード、所属部署コード~~

自分が発生させたものに寄せたいので、下記をサクラエディタにコピー＆ペーストしてください。
```:Sample
名前,ふりがな,アドレス,性別,年齢,誕生日,血液型,居住地,所属拠点コード,所属拠点名,所属部署コード,所属部署
ほげほげ 太郎,ほげほげ たろう,hogehoge_taro@example.com,男,58,1966/1/24,O型,東京都,01,東京事業所,001,総務部
ほにゃほにゃ 花子,ほにゃほにゃ はなこ,honyahonya_hanako@example.com,男,39,1985/7/29,O型,名古屋,02,名古屋事業所,002,人事部
ふがふが 次郎,ふがふが じろう,hugahuga_jiro@example.com,男,73,1951/3/6,O型,大阪,11,大阪事業所,011,経理部
```
<br>
「名前を付けて保存」から、ファイル名後ろの拡張子を「.csv」に変更して保存してください。
検証用のcsvファイルの完成です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/ad8c70bd-fccd-6e4b-c562-c8b6e19c4848.png)

# 3.「0落ち」を意図的に発生させる
## 3-1.CSVファイルをサクラエディタで開いた時の見え方
サンプルcsvファイルをサクラエディタで開いてください。
「所属拠点コード」は適切に「01」「02」「11」、「所属部署コード」は適切に「001」「002」「011」と表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/8442de67-38d8-2240-02c5-d9d65e7a4cb9.png)
続いて、上書き保存をします。


## 3-2.CSVファイルをサクラエディタで開いて保存した後の見え方
上書き保存後に、再度、開きます。
「所属拠点コード」は適切に「01」「02」「11」、「所属部署コード」は適切に「001」「002」「011」と表示されています。
見え方や保存されたデータに問題はありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/9be78d2a-5bb5-0874-1e71-db74040dfce0.png)


## 3-3.CSVファイルをExcelで開いた時の見え方
今度は同csvファイルをExcelで開いてください。
「所属拠点コード」は「1」「2」「11」、「所属部署コード」は「1」「2」「11」と表示されています。
この時点で「0落ち」が発生しましたね。
~~ちなみにこの時点では、保存さえしなければ後の問題は発生しません~~
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/41079433-cb8e-3721-7f70-14b73e7654cf.png)
続いて、上書き保存をします。


## 3-4.CSVファイルをExcelで開いて保存した後の見え方
再度、同csvファイルをExcelで開きます。
「所属拠点コード」は「1」「2」「11」、「所属部署コード」は「1」「2」「11」と表示されています。
「0落ち」が発生したまま、[3-3]と変わりません。問題は次です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/19e9bb79-3e0e-9080-f1c3-88e8c8958b2a.png)

## 3-5.CSVファイルをExcelで保存した後にサクラエディタで開いた時の見え方
同csvファイルを、今度はサクラエディタで開いてください。
「所属拠点コード」は「1」「2」「11」、「所属部署コード」は「1」「2」「11」と表示されています。
Excelで開いた際に「0落ち」が発生していたところで保存したため、適切な「所属拠点コード」と「所属部署コード」は失われてしまいました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/c764a22f-5a80-b8e6-2b4c-b1557408278e.png)
この欠損に気が付かないで、csvファイルを使った時に次の章のような事態になります。

# 4.「0落ち」したcsvファイルを使うとどうなるのか？
## 4-1.システムに「0落ち」したcsvファイルを読み込んだ
「所属拠点コード」に紐づく「所属拠点」の登録がないなどのエラーを返して読み込みません。
~~最悪の場合、「所属拠点コード」に紐づいた「所属拠点」の登録がないなどのエラーを返さない、しかも「新しい所属拠点コード」と「新しい所属拠点」としてご丁寧に登録してくれます。私はこのパターンでした~~

更新した後~~もしくは更新されなかった~~のチェックで気が付かない場合、よく週次月末の集計で数字が合わないためミスが発覚します。
週末や月末の夕方に同僚を数時間、残業させることになります。
~~数人で数時間あれば業務的にはリカバリできたことがほとんど。ものによります~~

# 5.防止策について
## 5-1.そもそもどうすればよかったの？
新人が対応する1回目のタイミングで一緒に対応できればよいです...
事前に伝えても実体験するまでに何がなんだかわからず、結局、発生させた場合もあります...
~~役割分担的に年配になってからやらかす人もいたため、いつ起こるのかがよく分かりません。~~
別の気休め程度の方法として、続けて防止策を記載します。


## 5-2.サクラエディタでCSVファイルが見やすくなる設定
どうしてもExcelに慣れているので、他のは使いたくないと...
サクラエディタをExcelのように、セルごとに値が分けて表示される等ではないですが、表示の仕方をExcelに寄せて行こうと思います。
~~Excelみたいにオートフィルはできないので、比較すると不便なのかも~~

<br>
普通に開くとこう見えます。
1レコードがだらだらと横長に伸びています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/1cdf533d-13cc-75c1-dacb-e1aaf6984839.png)

<br>
設定の「タイプ別設定一覧」を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/8537758e-b410-dad4-9954-2d7042f027d0.png)

<br>
「追加」を押下します。

「設定18」が出てくるのでそのまま「設定変更」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/c03a468c-5baa-edd2-e75b-61587c4f2139.png)


設定画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/202174e5-6a77-fa98-ed71-8168b634d08f.png)

今回はこんな感じに設定します。
「OK」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/9be092bf-2f29-0626-2b91-8f009a23349c.png)


<br>はい、できました。
通常の開いた時と違い、カンマで区切って表示をしてくれるようになりました。
「Alt」+「十字キー」で矩形選択がしやすく、データを加工しやすくなりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/44d84cbe-7b03-e0f7-39aa-13c7d0b4e726.png)

<br>
ちなみに、設定を保存したい場合は<br>
さきほどの「設定変更」の「エクスポート」を押下してiniファイルをダウンロードしてください。

~~サクラエディタを開いた時に「インポート」からiniファイルを選択して、「一時適用」でまた同じ設定を使えます。~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/ef680c78-1e97-a274-c7ee-97160ef807d2.png)


## 5-3.結局のところExcelで開きたい場合
やっぱりサクラエディタみたいなものは無理、オートフィルを使いたいので...

Excelで開きます。
まぁ、先ほどもやったので、普通に0落ちしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/9351738f-a32a-038b-5b60-a0f169759b82.png)

リボンの「ファイル」を押下します。
「オプション」>「データ」＞「テキストから(レガシ)」にチェックをして「OK」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/41f1a1b8-bdd1-9453-f80d-4a600b7b44b2.png)

<br>
「データの取得」の「従来のウィザード」内に表示されるようになりました。<br>
こちらの「テキストから」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/8b556783-4b7c-e0b5-3288-a91744f3ff4a.png)

<br>
テキストウィザード(1)が表示されます。<br>
「コンマやタブなどの区切り文字」と「先頭行をデータの見出しとして使用する」をチェック、「次へ」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/19f3102e-6bdd-8843-2d26-bb7b2896d319.png)

<br>
テキストウィザード(2)が表示されます。
区切り文字を「コンマ」のみにします。「次へ」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/1174f63e-3aed-78cd-f730-be0b8a0ad394.png)

<br>
テキストウィザード(3)が表示されます。
データのプレビュー欄の「所属拠点コード」をクリックして、列のデータ形式を「文字列」にチェックします。
「所属部署コード」も同じく「文字列」にしてください。次に「完了」<br>

~~「Shift」+右端列クリックで全範囲を選択できます~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/26220a11-6e7d-b3c0-c679-b8b74ccd0bd0.png)

<br>
新規をワークシートを選択して「OK」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/b221ec96-4442-f102-7cdc-52bfa2b90902.png)

<br>
はい、「0落ち」せず「所属拠点コード」「所属部署コード」を表示できました。<br>
設定が済んでいるので保存しても大丈夫です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738092/cb78a31c-b2bf-6815-b998-8d0606e12dba.png)

ちなみにこのテキストウィザードからCSVファイルを開くと、
Excelでcsvファイルを開いていても0落ちしないし、Excelのオートフィル機能が使えてデータ加工をする際に便利です。

~~あれ、やっぱりExcelで開けるんじゃんって思うのですが、説明してもうまくできない方もちらほら...エディタの話はどうしたんだ？と。ともあれ、こういった話は社内の業務をマニュアルに落とし込めばよいので整理がてら~~