• ベストアンサー

エクセルの表計算で自動的に塗りつぶしが出来るのでしょうか?

下記の計算式に追加する形で自動的に(3-9なら黄色、9-3なら赤色など)色分けが出来る計算式を教えて頂きたいのですが。 よろしくお願いします。 =SUM(INDIRECT(\"eh\"&MAX(ROW()-11,3)):EH20)&\"-\"&SUM(INDIRECT(\"ei\"&MAX(ROW()-11,3)):EI20)

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

  • ベストアンサー
回答No.6

お手数をおかけいたしました。早速サンプルマクロを作ってみました。 VBE画面を開き、Sheet1モジュールシートを選択し、コードエディターに下記のコードをコピー・ペースト後、データを入力してみて下さい。自動で塗りつぶしが実行されます。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myClm As Integer Dim myColor As Long Select Case Target.Column Case 5, 10, 15, 20 '数式の入っている列番号を指定 Select Case Target.Text Case "3-9", "2-10", "1-11", "0-12" '黄色に塗りつぶす条件を指定 myColor = 6 Case "9-3", "10-2", "11-1", "12-0" '赤色に塗りつぶす条件を指定 myColor = 3 End Select Target.Interior.ColorIndex = myColor '塗りつぶしを実行 End Select End Sub もし、不具合がありましたら遠慮なくお知らせ下さい。

noname#14890
質問者

お礼

何度も重ね重ねお手数をお掛けし申し訳なく思いますと共にがんばって勉強していこうと言う気になりました。ありがとうございました。

その他の回答 (5)

回答No.5

こんばんわ。早速の補足有難うございます。 =SUM(INDIRECT(\"eh\"&MAX(ROW()-11,3)):EH20)&\"-\"&SUM(INDIRECT(\"ei\"&MAX(ROW()-11,3)):EI20) あなた様は、この数式の計算結果を色分けしたいということでよろしいのでしょうか。もしそうであれば、この式が入力されているセル番地を教えて下さい。もし違うのであれば、どのセル番地を色分けしたいのか教えて下さい。 お手数をおかけいたしますが、よろしくお願いいたします。

noname#14890
質問者

補足

>この数式の計算結果を色分けしたいということでよろしいのでしょうか。もしそうであれば、この式が入力されているセル番地を教えて下さい。もし違うのであれば、どのセル番地を色分けしたいのか教えて下さい。 何度も重ね重ねありがとうございます。はいそのとうりなのです。 前回説明のE列(勝敗結果)の所だけなのですが、複数の統計をとりたいのでセル番地はこちらで入れ替えて使おうと思います。 どうぞよろしくお願いします。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

式を、 =RIGHT(" "&SUM(INDIRECT("ec"&MAX(ROW()-11,3)):EC19),2)&"-"& RIGHT(" "&SUM(INDIRECT("ed"&MAX(ROW()-11,3)):ED19),2) のようにすれば、『2桁-2桁』のカタチになるので、条件付き書式で設定が楽になります。 この式なら、  条件1:『セルの値が』、『次の値の間』、『_9-_3』と『12-_0』 でパターンを赤色  条件2:『セルの値が』、『次の値の間』、『_0-12』と『_3-_9』 でパターンを黄色 で設定できるでしょう。(『_』は半角スペースです) ただし、11日目までは、条件付き書式は設定しません。 以下はマクロで行う例です。Sheet1で実行してみます。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。 プロジェクトエクスプローラのSheet1をダブルクリック。出てきたコードウインドウに下記マクロをコピーして貼り付けます。 色を塗りたいセルを選択して下のマクロを実行します。他に塗りたい色があれば自分で設定して下さい。 色のコードは、Helpを見るか、セルに色を塗るコトをマクロ記録すれば分かるでしょう。 Sheet1のコードウインドウに貼り付け ↓ Sub ColorPaint()   Dim rg As Range 'セル   Dim col_Idx As Long 'カラー   For Each rg In Selection     col_Idx = xlNone     Select Case rg.Text       Case "0-12": col_Idx = 6 '黄色       Case "1-11": col_Idx = 6       Case "2-10": col_Idx = 6       Case "3-9": col_Idx = 6       'Case "4-8": col_Idx = 6       'Case "5-7": col_Idx = 6       Case "9-3": col_Idx = 3 '赤       Case "10-2": col_Idx = 3       Case "11-1": col_Idx = 3       Case "12-0": col_Idx = 3     End Select     rg.Interior.ColorIndex = col_Idx   Next End Sub

noname#14890
質問者

お礼

早速の御回答ありがとうございます。複雑ながら分かりやすいご説明ありがとうございます。早速トライしてみます。

回答No.3

早速お知らせいただきまして有難うございます。 >EE=SUM(INDIRECT("ec"&MAX(ROW()-11,3)):EC19)&"-"&SUM(INDIRECT("ed"&MAX(ROW()-11,3)):ED19) この数式の意味が理解できません。何の計算をさせているのか。計算結果をどこへ(例えばEE19という風に)表示させたいのか教えて下さい。 また、3-9,2-10というのは何を表しているのか教えて下さい。 以上のことがわからないとサンプルマクロを作ることができません。 お手数をおかけいたします。よろしくお願いいたします。

noname#14890
質問者

補足

たびたびお手数をお掛け致します。 >計算結果をどこへ(例えばEE19という風に)表示させたいのか教えて下さい。 ABCDEの5列を基準に作成しまして、 A=日付け B=当日の結果の数字 C=当日の数字が前日の数字を上回ればチェックが入ります。 D=当日の数字が前日の数字を下回ればチェックが入ります。 E=勝敗結果です。 >また、3-9,2-10というのは何を表しているのか教えて下さい。 結果の勝敗表なのです。 以上のようなものなのですがどうぞよろしくお願いします。

  • 0shiete
  • ベストアンサー率30% (148/492)
回答No.2

状況をよくわかっていないのですが、 「書式」=>「条件付き書式」で条件によってセルのパターンを変更する というのではダメでしょうか?

noname#14890
質問者

お礼

早速の御回答ありがとうございます。一度チャレンジしてみます。

回答No.1

はじめまして。 この方法は、VBAでマクロを作成すれば、簡単にできると思います。 簡単なマクロなので、よろしければサンプルを作ってみたいと思います。 ご希望の節は、次の内容をお知らせ下さい。 1.をつけるセル番地とそのセル番地につける色 お手数をおかけいたしますが、よろしくお願いいたします。

noname#14890
質問者

補足

早速の御回答ありがとうございます。 EB列に数字を入れるとします。そして EC=(EB19>EB18)*1 ED=(EB19<EB18)*1 EE=SUM(INDIRECT("ec"&MAX(ROW()-11,3)):EC19)&"-"&SUM(INDIRECT("ed"&MAX(ROW()-11,3)):ED19) 上記の計算式となります。12日間の計算式ですが、3-9、2-10、1-11、0-12なら黄色出塗りつぶしを、9-3,10-2,11-1、12-0なら赤色で塗りつぶしたいと考えています。お手数をお掛けしますがどうぞよろしくお願いします。

関連するQ&A