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も見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
フォントについて教えてください!
みなさんの一番好きなフォントは何ですか? よく使うフォントやこのフォント好きだなあというものをぜひ教えてください!
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
店員も客も斜め上を行くデパートの福袋
シュールを通り越して店員も客も斜め上を行くデパートの福袋に入ってそうなものを教えて下さい。 よかったらレビューもしてください。
-
エクセルで網掛けをしたセルをカウントしたいのですが。
会計ソフト・業務用ソフト
-
【Excel】 色の一致するセル数をカウントしたい。
Excel(エクセル)
-
エクセルで網掛けのセルだけカウント
Excel(エクセル)
-
-
4
EXCELでCOUNTIF(,,)のようにセルの書式を条件でセルの数をカウントする方法
Excel(エクセル)
-
5
excel関数・網掛けの個数を数える
Excel(エクセル)
-
6
excelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのチェックボックスを...
-
エクセルで数字から名前に変...
-
Excel関数 「日付を入力...
-
エクセルでのセルをまたぐ文字...
-
VBAで「セルに何か入っている場...
-
エクセルで漢字を数字に変換す...
-
エクセルについて、A1が1ならば...
-
エクセル 条件が成立した場合...
-
差込印刷
-
Excel:セルに入力されている日...
-
excel どのくらい増減したか一...
-
エクセルにて結合サイズが異な...
-
エクセルで縦書きルビの付け方
-
pages で「テキストを左右両端...
-
Excel VBAでオートフィルタ後...
-
エクセルで空白のセルを探して...
-
エクセル表計算 割り算は英語...
-
関数名は合っているのに#NAME?...
-
squidのログでミリ秒を日...
-
エクセル関数で…
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのチェックボックスを...
-
エクセルで数字から名前に変...
-
Excel関数 「日付を入力...
-
エクセルでのセルをまたぐ文字...
-
Excel:セルに入力されている日...
-
エクセルでのNULLという文字列...
-
エクセル関数で…
-
エクセル 条件が成立した場合...
-
エクセルで縦書きルビの付け方
-
VBAで「セルに何か入っている場...
-
エクセルで漢字を数字に変換す...
-
エクセル 親番号、子番号の書き...
-
折り返して表示、縮小して表示...
-
EXCELで連続していない数値を30...
-
エクセルにて結合サイズが異な...
-
エクセルで百万円(M)単位の...
-
関数名は合っているのに#NAME?...
-
Excel VBA 自動で連番をわりふる
-
エクセルで在庫表を作りたい
-
excel どのくらい増減したか一...
おすすめ情報