個々のワークシートのサイズを見つける(Microsoft Excel)
Maartenは、ワークブック内の各ワークシートのサイズを確認する方法があるかどうか疑問に思います。彼はほぼ100のワークシートを含むワークブックを持っており、ワークブックファイルのサイズを縮小したいと考えています。しかし、彼はどのワークシートが最大のサイズであるかを知りません。
個々のワークシートの「サイズ」を把握することは、主に「サイズ」の意味に依存します。使用するセルの数を意味しますか?使用される列と行?ワークシートにはどのくらいのテキストが保存されていますか?メトリックのリストは継続する可能性があります。
問題は、これらのような質問がマークを見逃していることです。ワークシートには、非常に多くのアイテムを保存できます。たとえば、コメント、数式、テキスト、グラフ、サウンドファイル、およびその他のアイテムをいくつでも含めることができます。 1つのグラフはセル数の点で別のグラフよりも大きい場合がありますが、もう1つのグラフはオブジェクト(グラフやピボットテーブルなど)の点で大きい場合があります。
ワークシートの相対的なサイズを比較する唯一の実際の方法は、各ワークシートを独自のワークブックに保存してから、結果の各ワークブックのサイズを調べることです。ワークブックを保存するという行為は、保存されたファイルに追加のオーバーヘッドをもたらすため、これは明らかに個々のワークシートの大きさを正確に答えることはできません。ただし、各ワークシートを同じ方法で保存すると、各ワークシートのオーバーヘッドは同等になるため、互いに比較してどちらが大きいかを確認できます。
次のマクロは、作成された各ワークブックのサイズを記録するために、現在のワークブックにワークシートを追加します。次に、各ワークシートをステップ実行して、個別のワークブックに保存します。次に、ワークブックのサイズが決定され、記録され、新しいワークブックが削除されます。
Sub WorksheetSizes() Dim wks As Worksheet Dim c As Range Dim sFullFile As String Dim sReport As String Dim sWBName As String sReport = "Size Report" sWBName = "Erase Me.xls" sFullFile = ThisWorkbook.Path & _ Application.PathSeparator & sWBName ' Add new worksheet to record sizes On Error Resume Next Set wks = Worksheets(sReport) If wks Is Nothing Then With ThisWorkbook.Worksheets.Add(Before:=Worksheets(1)) .Name = sReport .Range("A1").Value = "Worksheet Name" .Range("B1").Value = "Approximate Size" End With End If On Error GoTo 0 With ThisWorkbook.Worksheets(sReport) .Select .Range("A1").CurrentRegion.Offset(1, 0).ClearContents Set c = .Range("A2") End With Application.ScreenUpdating = False ' Loop through worksheets For Each wks In ActiveWorkbook.Worksheets If wks.Name <> sReport Then wks.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs sFullFile ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True c.Offset(0, 0).Value = wks.Name c.Offset(0, 1).Value = FileLen(sFullFile) Set c = c.Offset(1, 0) Kill sFullFile End If Next wks Application.ScreenUpdating = True End Sub
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(11113)は、Microsoft Excel 2007および2010に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link:/ excel-Finding_the_Size_of_Individual_Worksheets [個々のワークシートのサイズを見つける]
。