【用語集に記載の内容について】
用語集に記載されているメソッドや関数の引数は、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件です」のメッセージボックスが表示されます。 <マクロ実行前>
<マクロ実行後>
|
|||||||||||||||||||||||||||||||||||||||
カテゴリ | スタンダード |