Excelをかなり使用している場合は、同僚からかなり大きなワークブックを入手する可能性があることをご存知でしょう。多くの場合、各ワークシートが独自のワークブックに含まれるように、ワークブックを分割することが望ましいです。これは手動で行うことができますが、多くの内訳を行う必要がある場合、プロセスはすぐに面倒になります。

この種の反復作業は、マクロにとって当然のことです。 BreakItUpと呼ばれる次のマクロは、現在のブックのワークシートに基づいて個々のブックファイルを作成します。したがって、現在のブックに25個のワークシートが含まれている場合、このマクロを実行すると、25個の個別のExcelブックファイルが作成されます。各ワークブックには1つのワークシートがあり、ワークブックの名前はワークシートの名前と同じです。

Sub BreakItUp()

Dim sht As Worksheet     Dim NFName As String     Const WBPath = "C:\"



For Each sht In ActiveWorkbook.Worksheets         sht.Copy         NFName = WBPath & sht.Name & ".xls"

ActiveWorkbook.SaveAs FileName:=NFName, _             FileFormat:=xlNormal, CreateBackup:=False         ActiveWindow.Close     Next End Sub

BreakItUpマクロは、新しいワークブックをC:ドライブのルートディレクトリに保存します。ブックを別の場所に保存する場合は、WBPath定数が作成される行を変更するだけです。

また、このマクロをクラッシュさせるのは比較的簡単であることも知っておく必要があります。たとえば、ファイル名に「正当な」文字ではない文字をワークシート名で使用すると、マクロはファイルを作成しようとしたときに無礼に停止します。もちろん、このような不正な文字をチェックして置き換えるために、マクロに簡単に変更を加えることができます。

マクロのもう1つの潜在的な落とし穴は、ワークシートと同じ名前のファイルが既に存在する場合、マクロの実行が停止することです。たとえば、MySheet1という名前のワークシートがあるとします。 MySheet1.xlsというファイルがディスク上にすでに存在する場合、ファイルを上書きしようとするとマクロは停止します。これを回避するには、ブックが保存されているディレクトリにファイル名の競合がないことを確認します。

最後に、元のブックに他のワークシートを参照する数式が含まれている場合(数式が発生するワークシート以外)、それらの数式は分割されたブックでは機能しません。このため、作成されたものを注意深くチェックして、ワークブックがニーズに合っていることを確認する必要があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(12273)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: