• ベストアンサー

エクセルで文字色のところを項目別計算の仕方

初めまして。 エクセル2010を使用しています。 エクセルでしたいこと・・・ ・文字色別で、項目別に分けて計算ができるようにしたいのですが・・・ 関数では、できないのがわかったのですが、どなたか、「マクロ」を使用したものが お分かりになる方、お手数ですが、教えていただけないでしょうか? マクロ初心者なもので、困っております。

質問者が選んだベストアンサー

  • ベストアンサー
  • doredora
  • ベストアンサー率57% (4/7)
回答No.2

>文字色別で、項目別に分けて計算ができるようにしたい 文字色が何色あって、項目がいくつあるのかが不明なのでコピペしては使えないとは思いますが、参考程度にみてください。 画像も添付しますのでご覧ください。 A列に色分けされたデータ番号、B列に項目、C列に金額と並べてあります。 色は赤、青、緑、黒の4色 項目は、A・B・C の3項目 集計する表はG~I列に項目を配置してあります 宣言文は省略(^^;) Sub test() For K = 2 To 21 'データがある行だけ繰り返し KOUMOKU = Range("B" & K).Value KINGAKU = Range("C" & K).Value Select Case Range("A" & K).Font.Color 'A列のカラーを取得 Case Is = RGB(255, 0, 0) R = 2 '赤なら集計表の2行目 Case Is = RGB(0, 0, 255) R = 3 '青なら集計表の3行目 Case Is = RGB(0, 255, 0) R = 4 '緑なら集計表の4行目 Case Is = RGB(0, 0, 0) R = 5 '黒なら集計表の5行目 End Select Select Case KOUMOKU  Case Is = "A" C = "G" 'Aなら集計表のG列 Case Is = "B" C = "H" 'Bなら集計表のH列 Case Is = "C" C = "I" 'Cなら集計表のI列 End Select If Range(C & R).Value = "" Then Range(C & R).Value = KINGAKU Else Range(C & R).Value = Range(C & R).Value * 1 + KINGAKU End If Next K End Sub Office2003以前のタイプですとフォントカラーのパレットには原色が並んでいましたが、2007以降から原色は黒、白、赤くらいで、青と表示されていてもRGB値では緑は混ざっていますので、実際に使われている色のセルを選択してRGB値を確認してください 色番号の列を追加してSUMIFで集計と考えていましたが、回答1の方がご説明されていましたのでマクロを組んでみました^^; マクロ初心者とおっしゃっていますので、回答1の方の案をお勧めします。

noname#213386
質問者

お礼

返答が遅くなり申し訳ありません。 丁寧な回答ありがとうございます。 マクロ初心者ですが、頑張って色々とやってみます。 ありがとうございました^^

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

ちょっとした裏技的なテクニックですが・・ 見づらいでしょうが、画像と一緒にご確認くださいませ。 A列に「項目」の列を作り、色分けしておきます。 B列に「数値」の列を作ります。最終的にこれを色別に・・合計で良いですよね? で、色番号を表示する列を作ります。図ではC列にしています。 集計表(図の右の表)には、同様に 項目(E列)・色番号(F列)・色計(G列)を用意しています。 項目列には左表と同様、項目を色別に入れてあります。 「名前」の定義をします。 「色分けしたA列」以外の列の1行目にカーソルを置いておいてください。 (図で言うとD1セルなどがベストと思います。) 「数式」タブから「名前の定義」を開き、新規作成を押し、以下を設定します。   ・名前:データ色番号   ・範囲:ブック   ・参照範囲:=GET.CELL(24+NOW()*0,Sheet1!$A1) 同様にもう一つ、定義します。   ・名前:集計色番号   ・範囲:ブック   ・参照範囲:=GET.CELL(24+NOW()*0,Sheet1!$E1) どちらも「名前」は適宜で結構です。 B列に色番号を表示させるために、式を入れましょう。   =データ色番号 F列も同様に   =集計色番号 としてやります。これで、左右の表に色番号が入ります。多分。 では、G列で集計(色別合計)を計算しましょう。 G2セルに式   =SUMIF($B$2:$B$11,E2,$A$2:$A$2) としてやり、下方にフィルします。 範囲は絶対参照「$」をつけるのをお忘れなく。 これで、色別集計(合計)が出来ている・・はずです^^; ただしこの「GET.CELL」は環境に依存します。 多分、2010だったら大丈夫だと思うのですが・・・ 図が見づらくて申し訳ないのですが、とりあえずお試しくださいませ。 これでダメなら、マクロが近道です^^;;

noname#213386
質問者

お礼

返答が遅くなり申し訳ありません。 丁寧な回答ありがとうございます。 すごく助かりました^^