執筆:EugeneAmnis
Excelが重い
長年運用しているExcelファイルを開くのに時間がかかったりすることはよくあることではないでしょうか。時間がかかっても開くことができるのなら、まだいいですが開けなくなったら大変です。また、開けたあとも保存に失敗する可能性が多にある為、安心して運用することが出来ないのはストレスになります。
ここではExcelファイルを運用する上でファイルの軽量化について記そうと思います。
重くなる原因
パソコン環境にもよりますが個人的な体感として、基本的にExcelファイルは5MBを超えると処理に時間がかかるようになります。10MBでより遅延を実感することが多くなります。純粋にデータのみの場合はある程度は仕方ありませんが、時にデータが極端に少ないのにファイル数が大きい場合があります。そんな場合の原因は以下が考えられます。
- オートシェイプなど画像が多く貼り付けられている
- 条件付き書式を多用してる
- VBAを利用している
オートシェイプなど画像が多く貼り付けられている
画像を多く貼り付けることでファイル数が多くなることは自明ではありますが、非表示の列、行に画像があったり、目視できない大きさの画像にしてあった場合はすぐに対応することは難しくなります。不必要なものは削除し、写真などの外部データは圧縮機能を利用する・元の写真データを小さくしておくことで対策が可能です。
貼り付けた図形
隠れた状態
オートシェイプを利用した図形などは本番のファイルで描写するのではなく、専用のExcelファイルを用意し、そのファイルで描写後、画像として保存機能を用いて本番のファイルに貼り付ける等の工夫が可能です。
Excelの標準機能では画像・図形の全選択が出来ないため、VBAを組む必要があります。比較的に重くなりがちな画像のみなら、FormeStudioの画像全選択機能を利用することができます。
条件付き書式を多用してる
セルの値によってセルの書式を変更できる条件付き書式は大変便利な機能ですが、多用することでファイルの肥大化を招きます。特に長年運用されてきたExcelファイルでは範囲や条件の重複した条件付き書式や使用していない条件付き書式が多くある場合があります。
このような場合はExcelファイルをコピーし、条件付き書式をひとつひとつ削除して機能を確認するか、一度全ての条件付き書式を削除して再設定するかのどちらかを選ぶ必要があります。このような手間をかけないようにするためにも、不要となった条件付き書式は削除するようにしましょう。
幸いなことに条件付き書式はデータの構造に直接影響することはなく、警告を兼ねた修飾といった役割なのでVBAを利用していないExcelファイルでは気兼ねなく削除できる場合が多いでしょう。
VBAを利用している
VBAを使用しているExcelファイルは使用していないものと比べ、ファイルが大きくなりがちです。これはVBAのコードだけでなく、実行データも作成・保存されるためです。
実際、FormeStudio.xlsmは独自のリボンユーザーインターフェイスを利用している反面もありますが、200kBを超えています。また、外部ライブラリやExcel for Macのみでコーディングしたものはファイルがより大きくなる傾向があるようです。外部ライブラリの利用は仕方ありませんが、Excel for MacでコーディングしたExcelファイルをWindows版のExcelで開くことでファイルが軽くなります。具体的な理屈は不明ですが、Excel for Macを利用している方は一度試すのもありです。
対策としては不要なVBAモジュールやプロシージャを削除することが考えられますが、これまで上げてきた画像や条件付き書式と比べ、ファイルの肥大化に対する寄与は少ないので通常は無視しても良いレベルだとおもいます。
ただし、VBAのみで1MBを超えていたりする場合は一度見直しを掛ける必要があるでしょう。
重いExcelファイルは裏を返せば、業務の重要な位置を占めていることを示しています。業務システムに組み込むなどのExcel以外の運営を検討すべきです。