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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
(Excel)数字記入セルの数値の後...
-
Excelで数式内の文字色を一部だ...
-
エクセルの一つのセルに複数の...
-
Excelでのコメント表示位置
-
EXCEL VBA セルに既に入...
-
対象セル内(複数)が埋まった...
-
エクセルでオブジェクトを常に...
-
【Excel】 セルの色での判断は...
-
セルをクリック⇒そのセルに入力...
-
excelの特定のセルの隣のセル指...
-
エクセルの書式設定の表示形式...
-
【エクセル】IF関数 Aまたは...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
エクセル 足して割る
-
Excelで教えてください。 バー...
-
エクセル オートフィルタで絞...
-
エクセルで指定したセルのどれ...
-
セルに特定の色が付いていたら...
-
セルの高さ(行高)を求めるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
【エクセル】IF関数 Aまたは...
-
Excelで数式内の文字色を一部だ...
-
エクセルで指定したセルのどれ...
-
(Excel)数字記入セルの数値の後...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
対象セル内(複数)が埋まった...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
Excel 例A(1+9) のように番地の...
-
エクセルのセルの枠を超えて文...
-
エクセル 足して割る
-
excelの特定のセルの隣のセル指...
-
エクセルの一つのセルに複数の...
-
Excel for Mac使用中ポインタが...
-
エクセルで住所と建物名を分け...
-
EXCEL VBA セルに既に入...
おすすめ情報