No.5
- 回答日時:
すみません、自分で補足するのも変なんですが、#3、
#4の回答文は、ブラウザの環境によって文字の桁が
ずれてしまうようです。
(注釈の矢印が意図しないところを指している)
もし可能なら文章をテキストエディタにコピーして
等幅フォントで表示していただけると、もっと分かり
易くなると思います。
No.4
- 回答日時:
★隠れ関数?「ゲットセル」の続きです。
色つきセル(指定した書式のセル)だけを計算する方法の別解。
(計算式に名前を付けて「 ="付けた式の名前"」で計算する)
1 色を判定する式を登録する
(1) 「挿入」→「名前」→「定義」と進み「名前の定義」画面の
「参照範囲」欄に…、
「=GET.CELL(判定の種類を指定する番号,判定したいセル番地)
を記述します。
※判定の種類を指定する番号の一例
太字か否か?:20
フォントの色:24
塗りつぶし色:63
例 A B
1 赤い○ (この列で判定)←ここに判定式を書きたい場合
2 青い○ 参照範囲欄の式は
3 黄色○ 「=GET.CELL(24,A1)」
↑
※「24」なのは、フォントの色を判定したいから
第2引数のセル番地は後で相対参照してくれる
(2) 「名前」欄に計算式の名前(任意だが判り易く)を入力して
「追加」→「OK」で「名前の定義」画面を閉じます。
例えば式「=GET.CELL(24,A1)」の名前を "フォントの色" に
2 判定結果を表示したいセルに、「 =任意に定義した式の名前」を
記述します。
例 A B
1 赤い○ フォントの色 ←判定結果は「3」と表示
2 青い○ フォントの色 ←判定結果は「5」と表示
3 黒い○ フォントの色 ←判定結果は「0」と表示
3 判定結果のセルを、SUMIF や COUNTIF関数等で活用、計算する。
例 A B
1 赤い○ フォントの色 ←表示は「3」
2 青い○ フォントの色 ←表示は「5」
3 黒い○ フォントの色 ←表示は「0」
4 (標準カラーパレットのインデックス番号を参照)
5 =COUNTIF(B1:B3,3,A1:A3) ←A1~A3の範囲で赤い
6 フォントのデータのある
7 セルだけカウント
8 =SUMIF(B1:B3,5,A1:A3) ←データが数値である場合
青いフォントのセルだけ
合計
…以上です。自分でも何を言っているのか判らなくなるほど文章で
説明するのは難しいんですが、実際の操作は意外と簡単なのです。
まぁ、トライ・アンド・エラーということで…。(^^;
※蛇足的な注意
後から書式変更しても結果が自動更新されないので、NOW 関数を
組み込んで、適宜「F9」キーで更新させると良いでしょう。
例:「=GET.CELL(**,**)+NOW()*0」
↑(0を掛ければ結果に影響しない)
No.3
- 回答日時:
#1さんの回答にあるユーザー定義関数で第2引数に指定している
色番号とは、恐らく下記のことだと思います。
☆ブックの標準カラーパレットのインデックス番号
(VBエディタのヘルプにて「ColorIndex」を検索して参照)
1 2 白 3 赤 4 黄(薄)緑 5 青
6 黄 7 桃色 8 水色 9 茶色 10 緑
11 紺 (濃い緑)
以下 ~ 56 までありました。
>といっても、VBAはさっぱりなんですが・・・。
オイラもよく分かりませんが、VBA を使ったユーザー定義関数なら
他にもいろいろ工夫された方がいるようです。以前オイラが教わった
マクロの例を紹介しておきましょう。
例その1
(1)[ツール]-[マクロ]-[VisualBasicEditor](又は Altキー+F11)
で、VBE 画面にします。
(2)VBE画面上で[挿入]-[標準モジュール]を選択します。
するとコードウィンドウが出ますので、以下のコードを記します。
(コピー&ペーストでも可)
---------------------------- 以下 ------------------------
Function SpecialCell(targetRange As Range) As Integer
Dim myCell As Range
For Each myCell In targetRange
If myCell.Font.Color = vbRed _
Or myCell.Interior.Color = vbYellow Then
SpecialCell = SpecialCell + 1
End If
Next
End Function
------------------------- 以上終わり ---------------------
(3)元のワークシートに戻って、適当なセルに
=SpecialCell(A1:E5)
などと、通常の関数の要領で、調べたい範囲を引数(例ではA1:E5)で
指定して、Enterキーを押せば答えが出るでしょう。
例その2
次のユーザー定義関数で各色に対応できるハズです。
---------------------------- 以下 ------------------------
Function SpecialCell(targetRange As Range, _
intColor As Integer) As Integer
'赤は3,緑は4,青は5,黄は6
Dim myCell As Range
For Each myCell In targetRange
If myCell.Font.ColorIndex = intColor _
Or myCell.Interior.ColorIndex = intColor Then
SpecialCell = SpecialCell + 1
End If
Next
End Function
------------------------- 以上終わり ---------------------
赤をカウントする式は =SpecialCell(A1:E5,3)
青をカウントする式は =SpecialCell(A1:E5,5)
黄をカウントする式は =SpecialCell(A1:E5,6)
ただし、フォント色が黄でセル色が青などというのは、どちらにも
カウントされてしまいます。
例その3
---------------------------- 以下 ------------------------
Function ColoredCell(rngArg As Range, rngSample As Range) As Long
For Each c In rngArg
If c.Interior.ColorIndex = rngSample.Interior.ColorIndex Then
ColoredCell = ColoredCell + 1
End If
Next
End Function
------------------------- 以上終わり ---------------------
使う際には、=ColoredCell(A1:A10,A5) のように、第1引数は調べ
たい範囲を、第2引数には指定する色の(サンプル)セルを当てます。
オイラが先人に教わった方法は以上ですが、見よう見まねのオイラ
でも、コードの貼り付けで何とか結果を確認することができました。
ただし、これらマクロを使って作成したブックは、エクセルの環境
設定(メニュー「ツール」→「マクロ」→「セキュリティ」)により
「セキュリティレベル」を「高」にしていると、ブックをうまく開け
なかったり、「中」にしている場合はユーザー側の判断を求める警告
メッセージが出たりします。
念のために元に戻す方法を書いておくことにします。
★マクロを解除する方法
1 ツール → マクロ → Visual Basic Editor を開きます
2 画面左上のプロジェクトの欄に VBAProject があり、その配下に
モジュールがあります。
そのモジュール配下に作成したときのマクロの名前あるはず。
3 そのモジュール配下にあるマクロの名前ところで右クリック。
4 メニューがでて、「モジュールの名前」+の削除があります。
もしくは「モジュールの開放」が出たら、それをクリックしてみま
しょう。
5 エクスポートしますか?と訊いてきたら「いいえ」をクリック。
6 Excelに戻り、上書き保存して終了。
再度Excelファイルを呼び出すと、警告・確認メッセージは
もう出てこなくなるはずです。
このセキュリティに関する制約がうっとうしい場合はマクロを使わ
ない方法も、あることはあります。
しかし、文章のみで説明するのはかなり難しい上に、何より字数が
尽きたようです。
★隠れ関数?
「=GET.CELL(検査の種類を指定する番号,検査したいセル番地)」
No.1
- 回答日時:
ユーザー定義関数を使えばできます。
VBAで標準モジュールにこのようなプログラムを書いておきます。
あとは、ワークシート上で =COUNTCOLOR(範囲, 色番号) の形で式を入れれば、範囲内である色番号で塗られたセルの数を表示します。
※色番号と色の対応は、パレットの設定を変えると変化します。
Function COUNTCOLOR(ByRef 範囲 As Range, ByVal 色 As Integer) As Long
Dim 個数 As Long
Dim セル As Range
Application.Volatile
個数 = 0
For Each セル In 範囲
If セル.Interior.ColorIndex = 色 Then
個数 = 個数 + 1
End If
Next
COUNTCOLOR = 個数
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- その他(Microsoft Office) 【スプレッドシート】白色のセルをカウントしたい 2 2023/02/24 07:39
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Excel(エクセル) Excel countif関数で取り消し線のセルをカウントしないようにしたい countif関数で文 2 2023/08/21 10:27
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
エクセルで網掛けをしたセルをカウントしたいのですが。
会計ソフト・業務用ソフト
-
【Excel】 色の一致するセル数をカウントしたい。
Excel(エクセル)
-
エクセルで網掛けのセルだけカウント
Excel(エクセル)
-
-
4
EXCELでCOUNTIF(,,)のようにセルの書式を条件でセルの数をカウントする方法
Excel(エクセル)
-
5
excelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。
Excel(エクセル)
-
6
excel関数・網掛けの個数を数える
Excel(エクセル)
-
7
COUNTIF セルに色を塗るとカウントされないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのチェックボックスを...
-
エクセルでのNULLという文字列...
-
エクセルでのセルをまたぐ文字...
-
差込印刷
-
関数名は合っているのに#NAME?...
-
エクセル 空白を除き左に詰め...
-
エクセルについて、A1が1ならば...
-
Excel関数 「日付を入力...
-
エクセルで縦書きルビの付け方
-
エクセルの関数で円とドルを元...
-
ワードで文字がセルの下にもぐ...
-
結合されたセルに貼り付けたU...
-
エクセルで数字から名前に変...
-
VBAで「セルに何か入っている場...
-
EXCELで、目標達成の時にセルに...
-
小学校の算数プリントをエク...
-
折り返して表示、縮小して表示...
-
配列の逆行列が求められない(M...
-
エクセルで数字を1文字ずつセル...
-
フォルダ内のエクセルファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのチェックボックスを...
-
エクセルで数字から名前に変...
-
Excel関数 「日付を入力...
-
エクセルでのセルをまたぐ文字...
-
Excel:セルに入力されている日...
-
エクセルでのNULLという文字列...
-
エクセル関数で…
-
エクセル 条件が成立した場合...
-
エクセルで縦書きルビの付け方
-
VBAで「セルに何か入っている場...
-
エクセルで漢字を数字に変換す...
-
エクセル 親番号、子番号の書き...
-
折り返して表示、縮小して表示...
-
EXCELで連続していない数値を30...
-
エクセルにて結合サイズが異な...
-
エクセルで百万円(M)単位の...
-
関数名は合っているのに#NAME?...
-
Excel VBA 自動で連番をわりふる
-
エクセルで在庫表を作りたい
-
excel どのくらい増減したか一...
おすすめ情報