- ベストアンサー
エクセルで塗りつぶしたセルの合計
こんにちは。 単純にA1からA5までを青で塗りつぶした表で A6にセルを塗りつぶした数(この場合だと5)が 出る方法(関数?)はあるでしょうか。 塗りつぶしたセルには文字も数字も入力なしで、 ただ色をつけるだけにしたいのです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VBAでユーザ定義関数を作成して「背景色が青色のセルの数を数える」ことは可能です。過去問もたくさんあります http://okwave.jp/qa2277000.html >ただ色をつけるだけにしたいのです。 でも「色をつける操作」は関数の再計算のトリガになりません。ですからAlt+Ctrl+F9で強制再計算させる必要があります。 裏技的には一定間隔で強制再計算を行わせるマクロを実行しておく方法も考えられますが、計算式の多いシートを頻繁に再計算していたら実用に耐えないかもしれません。 試してみるなら以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。(1回実行すれば後は2秒間隔で再実行します。止めたいときはESCキーを2秒以上長押ししてください) Sub MacroK() SendKeys "%^{F9}" Application.OnTime Now + TimeValue("00:00:02"), "MacroK" End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
時どきこの質問だ出るが 下記のことを頭に明記のこと。 難しいというより原理がわかってないからの質問。 ーー エクセルの関数の、引数と結果は、セルの「値」を使い計算・判別・処理等して、結果はセルの「値」を返すものである・ 一方質問で言う、色の設定は「書式」にあたり、セルの属性としても異なる世界のものである。 すなわち関数では、セルの書式を判別できない(ようになっている)。 ーー 以上が大原則。 ただユーザーのニーズに押されて、マイクロソフト社は、将来何とかするかもしれない。 書式重視の姿勢は2007などに感じる。 ーーー 「関数で」というから出来ないだけで、ユーザー定義関数を作れば何ということ無い。 ーー 例データ A列は書式のパターンの色設定状態 A1:B4 A列 B列 赤 3 sっていなし -4142 赤 3 黄 6 グリーン 4 ーー 標準モジュールにたった中身1行。 ユーザー関数 Function clr(a) clr = a.Interior.ColorIndex End Function ーーー B列B1に =clr(A1) と入れてB4まで式を複写 。B列にでた数値をCountIFなどで使えばよい。 ーー VBAで全てやることも出来る。
お礼
詳しく説明ありがとうございました。 始めは何を言われてるのかすら解らず、 VBA? マクロ? という感じだったのですが、 調べていくうちに解ってきました。 ありがとうございました。
- nobu555
- ベストアンサー率45% (158/345)
こんな方法もあります。 「色付きセルを計算する」 http://oshiete1.goo.ne.jp/kotaeru_reply.php3?q=3856004 参考まで。
残苑ながら、塗りつぶしたセルをチェックするワークシート関数は存在しません。 条件付書式でセルのデータを元に色をつけているなら、その元データをチェックすれば可能ですが、 単純に書式メニューから色をつけただけだと不可能です。 VBAでユーザー定義関数を作るしかありません。
お礼
VBAという言葉すら知らなかったのですが(><) ここで教えて頂いてやりたかったことができました。 ありがとうございました。
お礼
何もわからなかったのですが、載せていただいたURLのとおりにしたら私でも出来ました。 まさにやりたかったことです。 ありがとうございました。