組み込みのCOUNT()またはCOUNTA()でこれを実現することが可能です

機能しますが、ワークブックに多くのワークシートが含まれている場合、または新しいワークシートをワークブックに頻繁に追加する場合、これは大きな作業になる可能性があります。

複数のワークシートから範囲をカウントするには、次のようなCOUNTA関数を使用できます。

COUNTA(Sheet1:Sheet10!A1:A100)

上記の数式は、ワークシートSheet1からSheet10のA1:A100の範囲にあるすべての非空白セルをカウントします。

以下のカスタム関数を使用すると、ワークブック内のすべてのワークシートから範囲内のセルを簡単にカウントできます。

Function CountAllWorksheets(InputRange As Range, InclAWS As Boolean) As Double

' counts the content of InputRange in all worksheets in the workbook

Dim ws As Worksheet, TempCount As Long

Application.Volatile True ' calculates every time a cell changes

TempCount = 0

For Each ws In ActiveWorkbook.Worksheets

If InclAWS Then ' include the active worksheet

TempCount = TempCount + _

Application.WorksheetFunction.Count(ws.Range(InputRange.Address))

Else ' exclude the active worksheet

If ws.Name <> ActiveSheet.Name Then ' not the active worksheet

TempCount = TempCount + _

Application.WorksheetFunction.Count(ws.Range(InputRange.Address))

End If

End If

Next ws

Set ws = Nothing

CountAllWorksheets = TempCount

End Function

この関数は、組み込みのワークシート関数と同じように使用されます。

Excel 5/95では、変数InputRangeをRangeではなくVariantとして定義する必要があります。

この関数は、ブック内のすべてのワークシートで使用する他のワークシート関数で使用するために簡単に適合させることができます。