【用語集に記載の内容について】
用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。
また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。
【コードをコピーして実行する場合の注意】
文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。
SUBTOTAL関数(ワークシート関数)
| 名称 | SUBTOTAL関数(ワークシート関数) | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 説明 | 合計や平均など、指定した集計方法で集計を行うワークシート関数です。 集計の際、オートフィルターで非表示になっている行は、集計対象から除外されます。 |
|||||||||||||||||||||||||||||||||||||||
| 書式 |
WorksheetFunction.Subtotal(集計方法, セル範囲) 集計方法:集計方法を数値で指定 <指定可能な集計方法(一部)> 1:AVERAGE関数 2:COUNT関数 3:COUNTA関数 9:SUM関数 |
|||||||||||||||||||||||||||||||||||||||
| コード例① |
【オートフィルターで絞り込んだ結果を合計する】
Sub Macro1()
Dim total As Long
'オートフィルターを設定し、1列目を絞り込み
Range("A1").AutoFilter 1, "りんご"
'絞り込んだ結果をSUM関数で合計
total = WorksheetFunction.Subtotal(9, Range("B:B"))
MsgBox "りんごの入荷数は" & total & "個です"
End Sub
AutoFilterメソッドで、アクティブシートのセルA1を含む表(セル範囲A1:B5)にオートフィルターを設定し、表の1列目を「りんご」で絞り込みます。 SUBTOTAL関数で、B列を集計方法9(SUM関数)で集計します。集計の際、オートフィルターで非表示になっている行は集計対象にはならないので、A列で表示されている行のB列の値が合計され、メッセージボックスに表示されます。 マクロを実行すると、「りんごの入荷数は40個です」のメッセージボックスが表示されます。 <マクロ実行前>
<マクロ実行後>
|
|||||||||||||||||||||||||||||||||||||||
| コード例② |
【オートフィルターで絞り込んだ結果の件数を数える】
Sub Macro2()
Dim cnt As Long
'オートフィルターを設定し、1列目を絞り込み
Range("A1").AutoFilter 1, "バナナ"
'絞り込んだ結果をCOUNTA関数でカウント
cnt = WorksheetFunction.Subtotal(3, Range("A:A"))
If cnt = 0 Then
MsgBox "バナナは存在しません"
Else
MsgBox "バナナは" & cnt - 1 & "件です"
End If
End Sub
AutoFilterメソッドで、アクティブシートのセルA1を含む表(セル範囲A1:B5)にオートフィルターを設定し、表の1列目を「バナナ」で絞り込みます。 SUBTOTAL関数で、B列を集計方法3(COUNTA関数)で集計します。集計の際、オートフィルターで非表示になっている行は集計対象にはならないので、A列で表示されている、空白ではないセルの数をカウントし、変数cntに格納します。 Ifステートメントで、変数cntの値を判定し、メッセージボックスを表示します。 <変数cntの値が0の場合> 「バナナは存在しません」のメッセージボックスが表示されます。 <変数cntの値が0ではない場合> 変数cntの値には、項目名も含まれているため、その件数を差し引いた、「バナナは 変数cnt-1件です」のメッセージボックスが表示されます。 マクロを実行すると、「バナナは2件です」のメッセージボックスが表示されます。 <マクロ実行前>
<マクロ実行後>
|
|||||||||||||||||||||||||||||||||||||||
| カテゴリ | スタンダード |