No.4ベストアンサー
- 回答日時:
----------------色番号を調べる関数------------------------------------------
Function iroban(iro)
iroban = iro.Interior.ColorIndex
End Function
-------------------ここまで----------------------------------------
-------------------色数カウント関数---------------------------
Function irosuu(gyoutou, gyoumatu, iroban)
For i = gyoutou.Row To gyoumatu.Row
If Cells(i, gyoumatu.Column).Interior.ColorIndex = iroban Then irosuu = irosuu + 1
Next
End Function
--------------------ここまで---------------------------------------
■「色を調べる関数」で調べたい色のセルを指定(色がなしの場合は-4142になります)
■「色数カウント関数」はカウントする列の行頭と行末のセルを指定。
「色を調べる関数」を入力したセルを指定するか、色番号を入力。
再計算はしてくれないのでユーザー関数の数式バーで、一部分をクリックして、[Enter]キーを押す必要があります。(マクロにしておくと楽だと思います)
No.3
- 回答日時:
こんにちは
>セルの値の種類ごとにセルの色で色分けされています。
とありますが、その色分けのルールで判定したほうが正確かつ早くないですか?
余計なアドバイスだったらすみません。
No.2
- 回答日時:
あまり詳しくはないもので・・
>ユーザー関数を設定してセル上の値として表記したい
結果をセル上に出すだけでなく、関数もセル上に表記するということですか?
私が書いたものだとボタンと結果しかセルに出ませんね。
すみませんがわかりません。
範囲と色は引数として下記の関数になげれば良いと思います。
ちょっと改造が必要ですが・・
>色の指定のないセルもカウントしたいので
・
・
For i = 0 To 253 "行数を指定
in_color = ActiveCell.Interior.ColorIndex
Select Case in_color
Case 3
count1 = count1 + 1
Case 2
・
・
Case Else"Elseにはそれ以外(色に指定が無い)物が来ると思うんですがだめですかねー?
count2 = count2 + 1
End Select
Next
ActiveCell.Offset(0, 1).Value = count1"ちょっと変更しました
ActiveCell.Offset(0, 2).Value = count2
この回答への補足
お答えありがとうございます。
ちょっとやってみたのですが、上手く集計ができませんでした。
Worksheets("Sheet1").Range("K3").Activate '始める位置を指定
の「K3」というのは答えを表記したいセルの指定ですよね?
それと For i = 0 To 253 '行数を指定
は何の行数を指定するのでしょうか。すみません。VBAは初心者なので
よくわからないんです。
お答えいただいたプログラムをVBAで記載して、集計したい範囲を
ドラッグしてからコマンドボタンを押すと、「0」と「254」としか
(この場合、宣言している色は赤のみ)セルにでてきません。
もちろん、赤色のセルはいくつかあります。
私のやり方に問題があるのかもしれません。
それと、集計するデータの範囲とか、色とかがその都度違うのですが
その場合はVBのエディタでそれを変更することになりますよね。
となると、多少のVBの知識が必要となり、誰でもこれを使用できるわけでは
なくなってくるので、できれば、関数のマクロを組めればと思ったわけです。
もし、何か解決方法があるならばお手数ですが教えて下さい。
No.1
- 回答日時:
エクセル上にコマンドボタンを配置してVBAを起動させます。
そのプロシージャに以下のようなプログラムを書けばできるのでは
ないかと思います。
Private Sub CommandButton1_Click()
Dim count1 As Long "色の数だけ宣言してください
Dim count2 As Long
Dim in_color As Long
Dim i As Long
count1 = 0
count2 = 0
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("K3").Activate "始める位置を指定
For i = 0 To 253 "行数を指定
in_color = ActiveCell.Interior.ColorIndex
Select Case in_color "ColorIndexはヘルプで参照できます
Case 3 "3は赤です
count1 = count1 + 1"色の数だけSelect文を増やして下さい
Case Else
count2 = count2 + 1
End Select
ActiveCell.Offset(1, 0).Activate
Next
ActiveCell.Offset(1, 0).Activate
ActiveCell.Value = count1 "赤のセルの数を表示します
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = count2 "それ以外を表示します
End Sub
この回答への補足
お答えありがとうございます。
しかし、できることならば、ユーザー関数を設定して
セル上の値として表記したいのですが。
範囲と色の指定のできるユーザー関数です。
それと、色の指定のないセルもカウントしたいので
その場合はColorIndexでは指定できないので
どうしたらいいでしょうか。
全体から、色つきセルの合計を引けばいいんですが
できれば、その方法ではない方法でできないものかと・・。
お手数ですが、よろしければ教えて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) Excelで全クラスのランキング表を作成したい 4 2022/05/24 15:28
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- Excel(エクセル) 指定した数字まで累計する方法や文字例の抽出について教えてください 4 2022/10/05 21:19
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- 会計ソフト・業務用ソフト エクセル 背景色のついたセル位置を参考にして固定の数値を取得する 4 2022/07/11 08:44
- Excel(エクセル) エクセル関数の質問 5 2022/04/20 09:46
- Excel(エクセル) excel 2013 色付きセルだけ合計する。 2 2023/02/20 07:28
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
Excelで数式内の文字色を一部だ...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセル オートフィルタで絞...
-
セルをクリック⇒そのセルに入力...
-
エクセル 足して割る
-
複数のセルのいずれかに数字が...
-
Excel2003 の『コメント』の編...
-
エクセルの一つのセルに複数の...
-
エクセルでオブジェクトを常に...
-
EXCEL VBA セルに既に入...
-
エクセルのセルの枠を超えて文...
-
★★エクセルのテキストボックス...
-
枠に収まらない文字を非表示に...
-
(Excel)数字記入セルの数値の後...
-
エクセル セルの中に縦線が入っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
エクセルの一つのセルに複数の...
-
複数のセルのいずれかに数字が...
-
excelの特定のセルの隣のセル指...
-
数式を残したまま、別のセルに...
-
ハイパーリンクの参照セルのズ...
おすすめ情報