Excelでマニュアルなど作成していると、シート数が多くなりすぎてファイル自体が重くなったり、Excelの動作が重くなったりすることはないでしょうか?
そのような場合に使えそうな、Excelの各シートをファイルに切り出して分割保存するマクロを作成しましたので説明します。
サンプルのExcelをダウンロード
概要
今回のマクロ機能は、以下の通りです。
- マクロを実行(ボタン押下)
- 各シートをファイルに分割したいExcelファイルを選択
- 選択ファイルの各シートをExcelファイルとして切り出し保存 (選択したファイルと同フォルダ内)
- マクロ実行Excelファイルに『切り出したファイルのリンク先一覧』を生成
パッケージ構成
Excelマクロ内の構成は下記となります 。
ソースコード解説
ExcelのVBA、いわゆるマクロ処理のソースコードとなります。
①Main
メインの GetOpenFileSheetsSave 関数を実行する間に Focus 関数を準備しました。
この Focus 関数でExcelの描画処理、自動更新などを停止しておくことでマクロ実行時間を短縮させます。
①ModuleHelper
今回使用する関数です。
②ModuleSheetToFile
ポイントや補足はコード内のコメントに記載しています。
Excelの各シートを別ファイルに切り出して保存するというシンプルな機能ですが、注意すべき点もいくつかあった良いサンプルでした。
今回の関数は汎用的にも使えるため、関数のアクセス修飾子を private から public に変更して活用してもらってもよいかと思います。
以上です。