Officeワーカーのための「マニアックな」ワザ辞典は、JavaScriptが有効になっていないと見ることができません。JavaScriptを有効にして、ページの更新ボタンを押してください。
選択範囲内の色つきセルの
合計を求めるユーザー定義関数
要VBA/サンプル有
TOP
>
Excel
/
Word
/
PowerPoint
○ポイントは選択範囲の取得とループ
ワークシート関数に無いけど、あれば以外と便利な色つきセルの合計。ここでは、ユーザー定義関数にして、カラーインデックス別の合計が出せるようにしていますが、もちろん、デフォルト以外の色は全て合計する関数に変えることも可能です。
(1) 標準モジュールにユーザー定義関数を作る。
コード例は下記
Function COLORSUM(TARGET, COLORINDX As Integer) As Double Dim rowUp As Integer Dim rowDn As Integer Dim clLft As Byte Dim clRgt As Byte TARGET = TARGET.Address rowUp = Range(TARGET).Row rowDn = rowUp + Range(TARGET).Rows.Count - 1 clLft = Range(TARGET).Column clRgt = clLft + Range(TARGET).Columns.Count COLORSUM = 0 For i = clLft To clRgt For ii = rowUp To rowDn If Cells(ii, i).Interior.ColorIndex = COLORINDX Then COLORSUM = Cells(ii, i) + COLORSUM End If Next ii Next i End Function
(2) ワークシートの適当な位置に
=COLORSUM(データ範囲,カラーインデックス値)
のように記入する。
(3) 返値が表示される。
○こんな時に使える
・セル内のデータを人間がチェックするような作業を行った後処理。
○応用またはその他の方法
・
EXCEL2000の場合はこちら
・
選択範囲内の色つきフォントの合計を求めるユーザー定義関数
・デフォルト色以外のセルの合計を求める場合は、上記コード例の
If Cells(ii, i).Interior.ColorIndex = COLORINDX Then
の部分を、
If Cells(ii, i).Interior.ColorIndex > 0 Then
のように変更します。
○サンプル
・
サンプルファイルはこちら(要解凍) 15KB
○注意
このユーザー定義関数は、セルの色を変更しても再計算されません。
このユーザー定義関数は、選択範囲が広くなると計算が遅くなります。