• 締切済み

色の付いたセルを数えたい

エクセルでセルの色別で集計したい 挿入→名前→定義で名前をCELLCOLOR 参照範囲を=GET.CELL(63,!A1)+NOW()*0 追加→OK で左となりのセルの色番号を返すユーザー関数を試したけどうまくいかない 上の方法の間違いのアドバイスか それとも別の方法でも よろしくお願いします

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

標準モジュールに Function clr(a, b) Dim cl As Range For Each cl In a If cl.Interior.ColorIndex = b Then n = n + 1 End If Next clr = n End Function 答えを出したいセルに =clr(A1:D14,8) この例では、A1:D14の範囲でカウントの場合で、 色番号インデックス8(ライトブルーの例) 少数例でテスト済み。

totaboy
質問者

お礼

ありがとうございます

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 この件、以前にも出ていたことなのですが、私個人としては、そういう方式自体やVersion4マクロ関数をウンヌンする話はナンセンスだと思いますが、少し、私のほうから、正しい注意書きをつけておきたいと思います。(他の方も読んでいる人もいると思いますから。) まず #1 さんのご指摘が、ちょうどよいのですが、 「!はタイプミスですか?」 これは、 GET.CELL(63,!A1)+NOW()*0 名前-定義というのは、元々、シートに属したものですので、「!」としないと、各シートで使えなくなります。ただし、それは、ある種の致命的エラーにも発展しますので、この方式は、複数のシートで使用する場合は、注意したほうがいいようです。 シートは違っても、同じセル番地で重なったりすると、シートが違ってもエラーが起こる可能性がたまにあります。できるなら、やはり、シートを指定したほうが、安全(Excelのアプリケーションレベルのハングアップを避けること)になります。また、名前-定義というのは、Bookに属したものですから、Bookを越えて、設定することは出来ません。エラーが発生します。 A1 と指定している以上は、右隣、通常は、B1 にセルポインタを置いて、名前登録します。 私は、ここでは書いたことがありませんが、色番号自体を取るのは、ユーザー定義関数で、 標準モジュール Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、Alt + Q で、画面を閉じます。 Function ColorIndexShow(セル As Range, Optional 文字 As Boolean = False)   Dim num As Integer   Application.Volatile   If 文字 = False Then    num = セル.Cells(1, 1).Interior.ColorIndex    Else    num = セル.Cells(1, 1).Font.ColorIndex   End If   If num < 0 Then num = 0   ColorIndexShow = num End Function 使用法: =ColorIndexShow(A1) パターンのカラーインデックス =ColorIndexShow(A1,1) 文字のカラーインデックス'(1は、Trueでも良い) ※関数名の文字の大文字・小文字は関係ありません。 となります。ただし、Now()*0 の再計算をさせた名前定義のほうが、上のようです。根本的な違いは、名前定義で行ったものは、セキュリティのマクロチェックに掛からないということですね。 ユーザー定義関数では、同じことは出来ません。 シート内で使う分には、一般のユーザー定義関数は、Public ステートメントはつける必要はありません。

totaboy
質問者

お礼

ありがとうござます 他のPCを変えたら出来ましたEXCELを再インストールします。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 「うまくいかない」とはどういうことですか? エラーになるのですか? 期待した値を表示しないということですか? とりあえず思いつく点です。 まず、名前定義をする際にB1(A1の右隣りのセル)を選択していますか? 参照範囲の「A1」は、この選択したセルとの相対位置になるので、仮にC1を選択して、名前定義をすると、C1から見て"2つ左隣り"のセルの色番号を表示することになりますよ。 次に、セルの色を変更した後に、[F9]で再計算しないと反映されませんが、それは大丈夫ですか? ちなみに、No.1の方が指摘している「!」は、シートを特定しないためにセル番地の前に付けるための記号ですので、問題ないと思います。 後、No.2の方も紹介していますが、私も別のページを紹介します。 http://www.moreexcellent.com/excel/tips/color.htm

参考URL:
http://www.moreexcellent.com/excel/tips/color.htm
totaboy
質問者

お礼

ありがとうござます ご指摘の内容は全て問題ありません エラーは#NAME?です 他のPCを変えたら出来ましたEXCELを再インストールします。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

エクセル技道場というサイトで紹介されてますので確認してください。 http://www2.odn.ne.jp/excel/ 「名前定義」の「名前定義で4.0マクロ関数を使う」にあります。

totaboy
質問者

お礼

ありがとうござます 他のPCを変えたら出来ましたEXCELを再インストールします。

  • surounin
  • ベストアンサー率28% (30/106)
回答No.1

!はタイプミスですか?

totaboy
質問者

お礼

ありがとうござます 他のPCを変えたら出来ましたEXCELを再インストールします。

関連するQ&A

  • EXCEL:色付セルの値を足し算したい。

    教えてgoo!の中で探して、 とりあえず、色を数値におきかえるというのを試してみたのですが、  ★[挿入]→[名前]→[定義]   名__前:色番号   参照範囲:=GET.CELL(63+NOW()*0,A1)   →[OK] で実行してみたのですが、駄目でした。 参照範囲が間違っているのだと思うのですが、 "GET"と、"NOW()"の意味合いを教えて下さい。

  • Excel2003を使用しています。セルA1の背景色の色番号を出したい

    Excel2003を使用しています。セルA1の背景色の色番号を出したいのですが下記の方法があると聞き試してみましたが、「=GET.CELL(63+NOW()*0,Sheet1!$A1)」と入力され色番号が出てきませんでした。 どうしたら良いでしょうか?教えて下さい。 (同じ背景色の合計を出すつもりです。最後の任意セルに「=SUMIF(B1:B8,5,A1:A8)」の式を入力するつもりです。マクロの使い方は分かりませんマクロを使わないでしたいと思っています。) ******************** B1セル上で [挿入]→[名前]→[定義]  名__前:色番号  参照範囲:=GET.CELL(63+NOW()*0,A1)  →[OK] ********************

  • GET.CELL関数を使ったら、警告画面が出る

    Excel2003です 式が入っているセルに色を塗りたいと思い、 GET.CELL関数を用いました(挿入→名前→定義の参照範囲に使用)。 しかし、ブックを開くたびに、マクロの警告画面が出てしまいます(Excel4.0がどうしたこうした‥‥)。 これの回避は不可能なのでしょうか? ※複数のPCで使うファイルであり、Excelのセキュリティを(中)以下に設定することは出来ません。 GET.CELL関数を外せば、当然警告画面は出ませんが、式が入っているセルを塗りつぶさなければならない以上、現状では、使わざるをえない状態です。 「式が入っているセルを塗りつぶす」 GET.CELL関数関数を使わずに行うことは可能でしょうか?

  • ワークブック名セル表示2

    ワークブック名をセルに表示する方法 EXCELの場合  名前の定義欄に「BookName」 参照範囲欄に「=GET.DOCUMENT(88)」入力>OK ブック名を表示させたいセルに「=BookName」と入力後 Enter キーを押せば可能ですが、オープンオフィースカルクでの、操作方法が解りませんどなたかお解かりの方、ご教示をお願いいたします。 挿入>名前>指定 このあたりからは不可能でしょうか。

  • エクセルでセルにユーザー名を表示させる関数は?

    VBAで求めてセルに挿入する方法はわかりますが、CELL関数あたりででできないでしょうか?

  • excel 特定の色のセルだけ

    特定の色のセルを選び出して、そこに入力されている数量を合計する方法を教えて下さい。 販売数の推移集計表を作っています。 A1は9/1分、A2は9/2分・・・というようにA20まで、販売数を入力しています。途中で値下げをするので、値段ごとにセルの色を変えていますが、この色別の販売数を計算したいと思っています。 例えば、A1からA20のうち黄色のセルに入っている数の合計、というのは計算できますか? どうすればよいか教えて下さい。 よろしくお願い致します。

  • エクセルの名前定義について

    こんにちは。 エクセルの名前定義についてわからないことがあります。 名前を定義するときに簡単な関数を使う方法はないでしょうか。 例えば、B1のセルの名前をA1のセルの内容にしたいときに B1の名前のところに「=A1」と言う風に参照したり、他の関数を 使える方法もあるなら知りたいです。 初歩的な質問かもしれませんが、ご教授のほどよろしくお願いします。

  • エクセルで前シートを参照して累計金額をだしたい。

    エクセルで現場ごとに日報を作成しています。 (現場単位で、2~3ヶ月で1つの日報ファイルを作成しています) 1日1シートで作成し、シート名は日付(例:1月2日なら「0102」)でつけています。 毎日かかった経費と、その日までの合計(累計)の経費をだしたいと思っています。 その日の金額(A1)に、前日までの累計の金額(一つ前のシートのA2)を足して、その日までにかかった経費を(A2)に表示させたいと思い 色々と調べて以下の方法にたどり着きました。 名前の定義に「前シート」として、参照範囲に 「=MID(INDEX(GET.WORKBOOK(1)&T(NOW()),GET.DOCUMENT(87)-1),FIND("]",INDEX(GET.WORKBOOK(1)&T(NOW()),GET.DOCUMENT(87)-1))+1,31)」を入力し 累計を求めたいセル(A2)には 「=INDIRECT("'"&前シート&"'!A2")+A1」と関数を入れました。 これで一応でるようにはなったのですが、エクセルを閉じて、再び開くと A2には「#NAME?」と表示されてしまい また名前の定義を設定し直さなければなりません。 私一人が使うわけではなく年配の上司も見るので、できれば開くたび、数字が表示されるようにしたいのですがどうすればよいでしょうか? ちなみに、他の名前の定義を使用している関数については、再び開いても数字が表じされています。 あともうひとつ・・・名前の定義以外で同じように累計を計算する関数はありますか? よろしくお願いします。

  • ワークブック名セル表示

    ワークブック名をセルに表示する方法 EXCELの場合  名前の定義欄に「BookName」 参照範囲欄に「=GET.DOCUMENT(88)」入力>OK ブック名を表示させたいセルに「=BookName」と入力後 Enter キーを押せば可能ですが、オープンオフィースカルクでの、操作方法が解りませんどなたかお解かりの方、ご教示をお願いいたします。

  • Excelの参照先セルに色を....

    Excelに関する質問です。あちこちのセルを参照しているsum関数があります。   例:=SUM(B4:B9,D7:D13,B16:E17,C20:D21,C23:C25)    このsum関数の参照先セルに、まとめて色を塗りたいのです。「どの領域の合計を出しているのか....」を一目で把握できるようなシートを印刷したいのです。 上手い方法はあるでしょうか? sum関数が入力されているセルを選択すると、参照先セルのワクが色づけされておぼろげに分かりますが、それでは認識性が今ひとつです。同様にsum関数が入力されているセルは複数個あり、それぞれの参照先を色分けしたいのです。 類似回答があるのかもしれませんが、下手な検索なため見あたりませんでした。すみませんが、以上、よろしくお願いいたします! 追伸:手動でチマチマ塗っていくのは断念しました。複数のsum関数がありますが、重複参照のセルはありません。1シート上です。

専門家に質問してみよう