納涼、パソコンの不思議な話
特定のエクセルファイルが開かなくなった!
マクロがブロックされる場合
●ITサポートの依頼内容は故障などのハードウェア的なものばかりではありません。ファイルが開かないなど、ソフトウェアの面でも多くの依頼があります。中でもMicrosoft Officeについての相談は良く寄せられます。
●最近、一番多いのはエクセルのマクロがブロックされるという相談です。特にネットワークから開いたものやダウンロードしたものなどを開く際にブロック表示が出るようです。これはマクロを使ったウイルスが蔓延して問題が大きくなってきているため、Microsoftがアップデートによって対応したことがブロックされる原因になっています。
●表示では「このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました」と出てきます。これまでだったら「コンテンツの有効化」や「編集を有効にする」というボタンが出てきてクリックすれば開いていたのですが今回はひと手間必要になります。
●信頼できるファイルであることが確認できているのなら、以下のMicrosoft公式ページの手順で解除することが可能です。
【Office でインターネットから入手したマクロが既定でブロックされる 】
※「信頼できるファイルで VBA マクロを実行できるようにする手順」に方法が記載されています。
https://docs.microsoft.com/ja-jp/deployoffice/security/internet-macros-blocked
※ファイルを右クリックしてプロパティーを表示し、以下に示す画像の操作方法をまず試してみる
※ダウンロード可能でローカルに保存したものはこれで対処可能。ファイルサーバーなどのデータもいったんローカルに保存し、書き戻す。
※ネットワークにあるファイルでローカル上にダウンロードできない場合は公式ページの手順で対処する。
●エクセルファイルが開かない原因はそれ以外にもあります。
開こうとしても反応がない場合
●最近のことですが、ある事業所からどうしても必要なエクセルファイルが開かないという相談がありました。ファイルの修復作業を行っても開かないとのことでしたので、出張サポートで対応いたしました。
●早速、他のファイルが開くかどうか確認すると他のエクセルファイルは問題なく開きます。ですから、エクセルのプログラム自体の問題ではないようです。しかし、試しに開いてもらったファイルを見てエクセルの使い方で気になった点がありました。
●ファイルの書式や表示スタイルが異様に多用されていたのです。ということは今回トラブルになっているファイルも書式やスタイルを多用している可能性が浮上してきました。早速、後述するある方法でトラブルを解決したのですが、やはり原因はエクセルの仕様制限を超えたファイルを作成していたためでした。
●具体的にどのような作り方をしていたのかというと、年間のスケジュール表を1ファイルとしてその中に月別にシートを作成。その月別シートにそれぞれひと月の日ごとの集計をするというものでした。
●それだけであればそう問題はないのですが、計算式やセルの背景色など書式設定や表示スタイルがひしめき合っていて、膨大な数になっていたのです。
●エクセルで制限されている以上の内容を1つのファイルに盛り込んだため、開かなくなってしまったわけです。
※1シート、1ファイルに多量の書式や表示スタイルを使用すると制限でファイルが開かなくなってしまう。
エクセルには仕様に「制限」がある
●エクセルは、データや表示のスタイルを無限に設定できるわけではありません。バージョンごとに数量的な制限値があります。
●今回の場合、Officeのバージョンが2007でしたから制限値が低かったのも原因になっていて、最新のバージョンのエクセルならどうにか回避できたのかもしれません。それでも無制限になることはありませんので、複雑なエクセルファイルを作成する際はできるだけフォルダ内でファイルごとに分けるほうが良いでしょう。
●Excelの仕様と制限については以下のMicrosoft公式ページを参考にしてください。
エラーで開かないエクセルファイルを開く方法
●今回使った解決の手法ですが、どうしても今日中にファイルを開く必要があるということでしたので、緊急時の対応に有効な方法を試してみました。
●その方法は「LibreOffice」の活用です。この方法はこれまでのサポートでも開かないエクセルファイルを開くのにたびたび使ってほぼ成功している方法です。
●LibreOfficeについては以前のコラムで詳しく紹介していますので、以下をご参照ください。
『Microsoft Officeのかわりはないの?「LibreOffice」なら無料でワープロ、表計算ができる!』
https://mbp-japan.com/saga/pc-pro/column/4007150/
●今回の解決法である「LibreOffice」をインストールして、開かなかったエクセルファイルを表計算のCalcで開いたところ、無事に開きました。LibreOfficeはMicrosoft Officeで作成したファイルとの互換性を高めているので、マクロなどを多用していなければエクセルファイルを開くことができます。
●互換性を優先させるために手の込んだつくりのExcelファイルでも余計な書式や対応していない表示スタイル、書式などといったものを排除しますので、大抵の場合開くことができます。
●今回の場合シートが多すぎることも原因でしたので、開いたファイルからシートを切り離して1ファイルとして保存しました。LibreOfficeはxlsx形式での保存も可能ですからエクセルとの互換性は保たれます。元ファイルもCalc上でxlsx形式で保存した後にエクセルで開いたところ、仕様の制限を下回ったため今度はエクセルでも問題なく開くことができました。
トラブルにならないためのエクセルデータの作成方法
●このように、1年間のデータ管理など冗長な処理を行う場合にはできるだけ月ごとに別ファイルで管理したほうが良いでしょう。1年分を一つのファイルにしているとそれが壊れた場合に年間のデータ丸ごとダメになってしまいます。月ごとにしているとダメージも少なくなります。
●また、エクセルに慣れてきてついつい視覚的な表現に凝りだす時期になると、今回のようなトラブルが起き始めます。確かに見やすいように色や書式をあれこれと凝りたいのは結構ですが、意外とシンプルな表示のほうがわかりやすいということもあります。
●「できる感」を誇張したいとか、ただの「自己満足」の表現になってしまっていることが仇となることがありますので注意しましょう。
●LibreOfficeはもう一つのOfficeソフトとしてパソコンにインストールしておくと非常に便利です。Microsoft Officeとの共存は問題ありません。もう少し詳しく知りたい場合は以下のページも参考になります。
●機能比較:LibreOffice - Microsoft Office
https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office/ja