エクセルを使ったデータ管理をする中で、たまーにこんな相談をされることがありました。
エクセルを保存したのに消えた!データって勝手に消えるの!?
今までの時間が無駄に・・・何とかならない??
保存してればデータが消えるわけないでしょと思いつつそのエクセルファイルを見てみると・・・
確かに色々なシートがあったはずが、1シートのみの状態になってしまったようでした。
そこでこの記事では、エクセルを保存したのにデータが勝手に消えた場合の原因と対処方法についてまとめました。
この記事を読むことで、このようにシートが勝手に消える現象を回避できるようになります。大切なデータと費やした労力が無駄にならないように、是非マスターしましょう。
それにしてもエクセルでは、数式が急に自動更新されなくなることがあったりと、想定していない動きになることも多く困ったものですね。
エクセルを保存したのにデータが消えた原因
エクセルは保存した時の状態が保たれるのですが、ある条件を満たした場合は他のシートが勝手に消えてしまいます。
どういうことか、解説していきます。
エクセルファイルではないことが原因で勝手に消えた
なぜエクセルファイルを保存したにもかかわらず勝手にシートが消えたのか?
それは、エクセルで開いていたファイルがCSVファイルだからです。
ファイル保存後に勝手にデータが消えたケースのほとんどは、エクセルでCSVファイルを開いて操作&保存したために起こります。
保存時にシートが消えないようにするにはCSVの理解が必要
CSVファイルと聞いてピンとこない場合、特に注意が必要です。
CSVファイルとは?
CSVとは何かというと、次のように項目がカンマ( , )区切りとなっているものを指しています。これをCSVファイルと呼んでおり、拡張子は.csvとなっています。
上記はテキストエディタでCSVファイルの中身を開いた際の表示例です。
ExcelとCSVの違いがあまりわからない場合はイメージがわかないかもしれませんね。そのような方の場合は、普段は以下のようにCSVファイルを開いて見ていることが多いかと思います。
「なんだ、エクセルじゃん」と思ったらNGです。これはエクセルファイルではありません。
CSVファイルをエクセルで開いている
というのが正しい表現になります。
CSVファイルとExcelファイルの違いの見分け方
CSVファイルなのかExcelファイルなのかはファイルの拡張子を見ればわかりますが、Windows10の標準ではファイルの拡張子は表示されないため分からないかもしれません。そのような場合はファイルアイコンを見てみましょう。
似たようなアイコンですが、よく見るとCSVファイルのほうには「a,」のような文字が入っているのが分かるかと思います。
「エクセルを保存したのにシートが消えた」という場合、対象のファイルは間違いなくCSVファイルになっていると思いますので、まずはファイルの種類を確認する癖をつけましょう。
ExcelファイルとCSVファイルの主な違い
エクセルファイルとCSVファイルのざっくりな違いは次の通りです。
エクセルファイル | CSVファイル | |
---|---|---|
ファイルの拡張子 | xls、xlsx | .csv |
ファイルの形式 | バイナリファイル | テキストファイル |
シートの有無 | あり | なし(シートの概念は無い) |
エクセルでファイルを開けるか | 開ける | 同左 |
テキストエディタでファイルを開けるか | 開ける(中身は読めない) | 同左 |
エクセルで開いた際の操作 | エクセルの機能(関数、色付け等)が使える | 同左 |
覚えておきたいのは
CSVファイルはテキスト(文字)データのみ保持できる
という点です。
CSVファイルをエクセルで開く→上書き保存→閉じるで消える
CSVファイルをエクセルで開いた場合、上書き保存後に閉じてしまうとデータの一部が消えます。
これだけだとおそらくイメージが沸かないと思いますので、以下で具体的に解説していきます。
CSVをエクセルで開くと関数やセルの書式設定が使える
CSVファイルはテキスト形式ファイル(文字データファイル)ですが、エクセルで開くことができます。しかも、エクセルと同じように関数やセルの書式設定(色付けなど)も可能です。
例えばあるCSVファイルをエクセルで開いた際に次のように表示されたとします。
この状態では、セルに色を付けたり数式を設定したりと、エクセルで行える基本的な操作はすべて可能となっています。(この例ではA7セルに対して、背景色と数式を設定しています)
そのため、「CSVでもエクセルみたいに色付けや数式って使えるのか!」と勘違いしてしまうのですね。
CSVに対して編集を行い、後述する保存と閉じてから開くという操作を行ってしまうと、保存したのに消えた!となってしまいます。
CSVファイルをエクセルで上書き保存は可能
CSVファイルをエクセルで開いて保存ボタンをクリックすると、そのままファイルを上書き保存することができます。
ただし、CSVファイルの保存時には次のように確認ダイアログが表示されます。
CSV(カンマ区切り)として保存する場合、ブックの一部の機能が失われる可能性があります。
この形式でブックを保存しますか?
このようなメッセージを一度は見たことがあるのではないでしょうか?
警告メッセージが出るということは重要なことをユーザに対して確認をしています。
とはいえ、メッセージを見ても大抵は「よくわからん」という状態になるため、このメッセージを特に気にせず「はい」をクリックして上書き保存しまいます。
この操作こそが、保存したのに消えた原因です。
メッセージにある通り、ブックの一部の機能が失わてしまったことで、保存したのにデータの一部が消えてしましまいました。
CSVファイルを閉じた後に再度開くと色々と消えている
では、次のCSVファイルを例に、保存後にファイルを閉じ、再度開くという操作を行ってみたいと思います。
まず、サンプルとして用意したCSVファイルをエクセルで開き、A7とA8セルにそれぞれ数式と背景色を設定してみました。
A7セルには「="aaaaa"&2」、A8セルには「="00000001"」という数式を設定しています。
次にこのファイルを上書き保存します(ダイアログでは「はい」を押します)
ファイルを上書き保存後、エクセルの右上の×ボタンをクリックします。
×ボタンをクリックすると再度次のようにダイアログが表示されますが、ここではすでに保存済みのため「いいえ」を押します。
CSVファイルをエクセルで開いている状態で×ボタンを押すと、上記の確認ダイアログが必ず表示されます。
×ボタンをクリックする前にファイルを保存していたとしてもこのメッセージは表示されるのですが、保存済みであればここで再度保存処理を行わなくても大丈夫です。
閉じたCSVファイルを開いて見ると・・・このようになっています。
A7セルにつけていた背景色が保存したのに消えたことが分かるかと思います。
このようにCSVファイルをエクセルで開き編集後に保存した場合、ブックの一部の機能が失われることで意図しない状態になってしまいます。
これが、「保存したのに消えた!」という状態です。
CSVファイルをエクセルで保存する際の注意点
主に次の3つの点が、ブックの一部の機能が失われれることで勝手に消えてしまいます。
数式は保存されない
セルの書式(背景色、文字の大きさ等)は保存されない
保存処理時にアクティブになっているシートの情報が保存される
CSVでは数式は保存されず消える
エクセルで開いたCSVファイル内のセルに「=A1+A2」のような数式を設定して上書き保存したとしても、CSVファイルに数式は保存されません。
数式の代わりに計算結果の値が保存されます。
例えば先述の例ではA7セルに「="aaaaa"&2」という数式を設定していましたが、保存処理時にCSVファイルに書き込まれるのは計算結果の「aaaaa2」という値です。
よって、CSVファイルに対して数式を入れて表を作りそのままCSV形式で保存する、といった操作は大変危険です。
ファイルを開いている間は数式が表示されていますが、ファイルを閉じて再度開いた際には数式が消えて値のみのデータ状態になっています。
「今まで頑張って作った数式が勝手に消えてしまった!」という結果になりかねません。
よって、CSVファイルに対して数式を使って処理するような場合は必ずExcel形式で保存しなおす癖をつけると良いでしょう。
CSVではセルの書式は保存されない
関数と同様に、セルの書式設定もCSVには保存されません。
- フォント(フォントの種類、サイズ、スタイル(標準、斜体、太字)、下線、文字色)
- 罫線(線のスタイル、色)
- 背景色
- ロック
- 表示形式
そのため、CSVファイルを開いて綺麗な表を作る→そのままCSV形式で上書き保存する→閉じる→開く、という操作を行ってしまうと、表を構成する枠線・色・文字の大きさの情報は消えて単に文字だけが表示されることになります。
こうなると表の作り直しが必要になりますので、このケースの場合もCSVファイルを一旦エクセル形式で保存しなおした後に表を作ると良いでしょう。
CSV保存処理時に表示していたシートの情報が保存される
CSVファイルをExcelで開いた際に一番見落としがちなのが、
表示中のシートの情報が保存される
という点です。
言い換えると、
複数シートがあっても保存されるのは1シート分のみ
ということです。
どういうことか、具体例を出してみたいと思います。
まず、CSVファイルをエクセルで開きます。すると、シートは1つ分のみ表示されるのが分かると思います。(この例ではtestというシートのみが存在します)
ここで、シートを1つ追加してみます。
するとこのように「sheet1」が追加された状態となります。(わかりやすいようにA1セルに文字を入れています。)
Sheet1を表示している状態でファイルを上書き保存し、エクセルを閉じ、再度CSVファイルを開きます。
すると、次のようにシートは1つのみ表示され、中身のデータはファイルを閉じる前に表示していた「Sheet1」の情報となっています。
これが、保存処理時に表示していたシートの情報が保存されるということです。
少しわかりづらいのですが、CSVファイルをエクセルで開いた際のシート名はファイル名とイコールとなっています。この例では、text.csvというファイルをエクセルで開いたので、シート名がtestと表示されています。
つまり、CSVファイルをエクセルで開いて色々なシートを追加して保存したとしても、1つのシートしか保存されません。複数のシートを作る=データをシートごとに分けて作っていると考えられますが、CSVファイルで保存するとその他シートが勝手に消えてしまうため、各シートで行っていた操作のほとんどが無駄になります。
保存したのに消えたという事例で一番多く発生するのが、この理由によるものですね。
よって、このケースでもシートを増やす場合はExcel形式でファイルを保存してから行うのが基本操作となります。
まとめ
エクセルを保存したのにデータが勝手に消えた場合の原因と対処方法についてご紹介しました。
ポイントはそのファイルがCSVファイルかどうかです。
CSVファイルをエクセルで開いて保存した場合、書式、関数と合わせて表示中のシート以外はデータが消えます。
これを回避するためには、CSVファイルをExcel形式で保存しなおす、ということを必ず行いましょう。このひと手間を加えることで、勝手にデータが消えるという意図しない状態を回避することができるようになります。
エクセルではこのように自分では意図しない動きをすることがありますので、似たような事例として「エクセルの数式が自動更新されない」などの記事も参考にしてみてください。
また、この記事に書いたようなちょっとした困ったことでも、自分に経験や知識が足りないために対応できなかったり、時間をかけたわりに全然進まなかったりと、思うようにいかない事ってありますよね。そんなときは専門家に相談したり解決してもらったりする方法もありますので、一人で悩まず対処してみましょう。