• ベストアンサー

日付を入力したら別のセルに色を

下記内容でご指導頂けませんか。 XP EXCELL2003 B2に日付(8/10)を入力したらA2に月度(08)でセルに色をつけたいのですが、この場合 月度は12ヶ月分ありセルのカラーも当然12ヶ必要になります。 例 B2に8/10と入力したらA2のセルは赤色 エクセル2003の条件付書式が3個しか出来ません。 関数で何かいい方はないでしょうか。 よろしく御願いいたします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.6

> 1月の場合、フオントが黒でマクロで白に出来たら Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Integer If Target.Column <> 2 Then Exit Sub If Target.Value = "" Then c = 0 Else On Error GoTo line Select Case Month(Target.Value) Case 1: c = 1 Case 2: c = 4 Case 3: c = 5 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 9 Case 8: c = 3 Case 9: c = 10 Case 10: c = 12 Case 11: c = 13 Case 12: c = 14 End Select End If Target.Offset(0, -1).Interior.ColorIndex = c Target.Offset(0, -1).Font.ColorIndex = IIf(c = 1, 2, 0) Exit Sub line: Target.Offset(0, -1).Interior.ColorIndex = 0 Target.Offset(0, -1).Font.ColorIndex = 0 End Sub ではいかが?

dorasuke
質問者

お礼

私のわがままを聞いていただき誠に有難うございました。 色々と勉強になりました。 少しはお陰でアップになりました。

その他の回答 (5)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

> B2といってましたが今の処 B2000 まで予定しています。 > 場合によっては B2000 以上になる可能性もあります。 では、B列全部を対象にします。 で、色を変えるのもA2限定でなく、入力したセルの左隣のセルということでなのでしょうか? とりあえずそのような前提で、以下のように変更します。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Integer If Target.Column <> 2 Then Exit Sub If Target.Value = "" Then c = 0 Else On Error GoTo line Select Case Month(Target.Value) Case 1: c = 1 Case 2: c = 4 Case 3: c = 5 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 9 Case 8: c = 3 Case 9: c = 10 Case 10: c = 12 Case 11: c = 13 Case 12: c = 14 End Select End If Target.Offset(0, -1).Interior.ColorIndex = c Exit Sub line: Target.Offset(0, -1).Interior.ColorIndex = 0 End Sub

dorasuke
質問者

補足

うまくいきました。 本当に未熟者のにお付き合い有難うございました。 恐縮ですが少し贅沢を言わせていただくと例えば1月の場合、フオントが黒でマクロで白に出来たら見やすくなりより良いのですが。 もしもしお時間があればご協力頂けれると幸いです。 本当に勝手な御願いです。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

merlionXXです。 > あなたにご指導いただいたのを追加したいのですが可能ならばどういうようにすればいいか教えていただけませんか。 該当のシートのモジュールにコピペしてみてください。と書いたのですが・・・。 あなたが提示されたマクロ(ダブルクリックで作動するものだと思います)はそのままにして、その下に貼り付けてみてください。

dorasuke
質問者

補足

何とか色々とトライしてうまくいきました。 私の説明不足で済みません B2といってましたが今の処 B2000 まで予定しています。 場合によっては B2000 以上になる可能性もあります。 本当に何回も申し訳ありませんが追加のマクロお教え願いませんか。 よろしく御願いします。

回答No.3

12色にしないことで一体どんな損失が発生するのかは部外者には想像もつきませんが、3色を使いまわすのでは駄目なのでしょうか? 条件付き書式で、 「数式が」「=MOD(MONTH(B2),3)=0」<色1> 「数式が」「=MOD(MONTH(B2),3)=1」<色2> 「数式が」「=MOD(MONTH(B2),3)=2」<色3> とすれば、3色を回して使うことが出来ます。

dorasuke
質問者

お礼

分からない人もいるのでより分かりやすくしたいと思いカラーにしたかったのです。 B2~B2000で説明不足でした。 ご協力有難うございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

マクロの一例です 該当のシートのモジュールにコピペしてみてください。 なお、色の変更はC=のあとの数字がカラーインデックスです。 8月はご指定の赤にしましたがあとはバラバラですのでそちらで適当に修正してください。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Integer If Target.Address <> "$B$2" Then Exit Sub If Target.Value = "" Then c = 0 Else On Error GoTo line Select Case Month(Target.Value) Case 1: c = 1 Case 2: c = 4 Case 3: c = 5 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 9 Case 8: c = 3 Case 9: c = 10 Case 10: c = 12 Case 11: c = 13 Case 12: c = 14 End Select End If Range("A2").Interior.ColorIndex = c Exit Sub line: Range("A2").Interior.ColorIndex = 0 End Sub

dorasuke
質問者

補足

今現在、下記のマクロが入力されています。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim i As Long Dim r As Byte i = Sheets("入金記入").Range("B65536").End(xlUp).Row + 1 r = Target.Row If Target.Value = "入金済" Then With Sheets("入金記入") .Cells(i, 2).Value = Date .Cells(i, 3).Value = Cells(r, 3).Value .Cells(i, 4).Value = Cells(r, 4).Value End With End If End Sub あなたにご指導いただいたのを追加したいのですが可能ならばどういうようにすればいいか教えていただけませんか。 マクロは分からないので恐れ入ります。 あなたに教えていただいた物だけなら作動しました。 是非これを生かしたいです。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

エクセル2007にするかマクロを使って対応することになるでしょう。

dorasuke
質問者

お礼

アドバイス有難うございました。

dorasuke
質問者

補足

マクロは全然分からずここで下記のマクロをご指導いただきました。 もし下記に追加できるのならお手数ですがご指導いただけませんか。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim i As Long Dim r As Byte i = Sheets("入金記入").Range("B65536").End(xlUp).Row + 1 r = Target.Row If Target.Value = "入金済" Then With Sheets("入金記入") .Cells(i, 2).Value = Date .Cells(i, 3).Value = Cells(r, 3).Value .Cells(i, 4).Value = Cells(r, 4).Value End With End If End Sub よろしく御願いします。

関連するQ&A

  • 今日の日付が過ぎたらセルに色

    いつもお世話になります。 WIN7 EXCELL2010 です。 B2 手入力で日付 ユーザー定義 mm/dd AH2 =IF(B2="","",WORKDAY(DATE(YEAR(B2),MONTH(B2)+1+(DAY(B2)>20),5)-1,1,祭日)) B2に対して20日締めの5日入金です。 入金日が祝土日はそのあとの日付です。 入金日が今日の日付を過ぎたらセルに色付けして注意喚起をしたいです。 条件付書式で 次の値より小さい TODAY() AH2<TODAY と試しましたがうまくゆきません。 数式での値でうまくゆかないのかとか思っていますが。 ご指導願えませんでしょうか。 よろしくお願いします。

  • エクセルの日付入力について

    エクセルの日付入力について質問します。 例えばAセル Bセルの書式設定にユーザ定義の yyyy"年"m"月"d"日"を設定します。 (1)Aセルに12/25と入力すると→2007年12月25日 (2)Bセルに1/8と入力すると→2007年1月8日 となります。 これを(2)Bセル1/8を入力すると2008年1月8日とする為には どうしたらよろしいでしょうか? 関数を使用かもしくは簡単な方法があればご教授願います。

  • エクセルの日付入力について

    エクセルの日付入力について質問します。 例えばAセル Bセルの書式設定にユーザ定義の yyyy"年"m"月"d"日"を設定します。 (1)Aセルに12/25と入力すると→2007年12月25日 (2)Bセルに1/8と入力すると→2007年1月8日 となります。 これを(2)Bセル1/8を入力すると2008年1月8日とする為には どうしたらよろしいでしょうか? 関数を使用かもしくは簡単な方法があればご教授願います。

  • 2つのセルに入力→別のセルが青くなるようにしたい

    A1とB1セルに数値または文字列が入力されると、H1列のセルが青くなるようにしたいと考えています。 仕事で制作物のスケジュール管理をしているのですが、2つの条件が揃わないと先に進めない工程がありまして、さらにそれぞれの条件が揃う時期がバラバラで不規則であること、またその2つの工程の入力セルと、その制作物のIDセルはかなり離れており、同時に見ることが難しいこと、また制作物が数百単位で個別にあることから、その様なことが出来ないか、と思い投稿しました。 やはり、条件附き書式と関数を併用するのでしょうか。

  • セルの書式設定のユーザー定義でセルに式を入力したい

    エクセル2007を使っています。 「セルの書式設定」の「ユーザー定義」で、 例えば「赤」とセルに入力しただけで、セルに「赤色」と表示される方法はわかるのですが(@"色")、 A1セルに「赤」と入力されているとして、 隣のB1セルを上記のようにセルの書式設定で「@"色"」と設定して、 B1セルに「=A1」と入力しても 「=A1色」と表示されてしまいます。 これを「赤色」とB1セルに表示させたいのですが、どうしたらいいのでしょうか? つまり、セルには式を入力して、尚且つ書式設定もしたいと思っています。 宜しくお願いします。

  • エクセルで土・日のセルに幅広く色をつけたい

    エクセルで予定表を作成しています。A列に日付・BからH列まで項目を設けています。(A列は、33行目まで日付が入力されています) A列に条件付書式で、条件付書式の設定で条件(1)数式が=WEEKDAY(A33)=1  パターン  色  ブルー  フォント  赤 A列に条件付書式で、条件付書式の設定で条件(2)数式が=WEEKDAY(A33)=7  パターン  色  グリーン フォント  赤 の設定を行いました。 A列の 土・日のフォントが赤に、セルの色がブルー・グリーンになるのですがBからH列はセルに色がつきません。 A33:H33  までの設定にするとセルの色がグレーになります。 AからHまでセルに同じ色を表示する設定はあるのでしょうか。

  • 日付によるセルの色付け

    セルに18/7/18のように 日付を入力しています。 このセルに19/1/12 または単に19と入力した場合 (とにかく先頭に19と入力した場合) そのセルに特定の色をつけたいと思っています。 条件付書式で設定したいと思いますが どうすればいいでしょうか?

  • エクセル 特定の単語が入力されたときにセルの色を変える

    エクセル 特定の単語が入力されたときにセルの色を変える A1に日付を入力すると、A2に自動的に曜日が入る数式を入れています。 カレンダーのように1ヶ月分がまとめて表示されているわけではなく、入力が必要な日だけ日付を入れるような表になるのですが、土曜や日曜の場合、曜日のセルの色を変える方法を教えていただけますでしょうか。 条件付書式でやってみたのですが、曜日のセルに数式を入れて自動的に表示させている場合、うまくできませんでした。(直接、土曜や日曜と入力するときちんと色が変わったのですが)

  • excel、A1セルとB1セルの差でセルに色を付けるには・・・・。

    皆さん始めまして、いつも大変お世話になっております。 excelでの質問です。 まずA1セルとB1セルに小数点2桁の数値を入力します。 A1セルからB1セルの数値を引き、その差が0.16以上の場合に条件付書式を使いA1セルとB1セルに色を付けたいのです。 当方条件付書式に 「数式が」=(A1-B1)>=0.16 上記の条件を入れてみたのですが、A1セルとB1セルに入れる数値によっては上手く色が付けられないで困っています。 参考値  A1「54.19」 B1「54.03」 上の数値だと色が付かなかったりします 他に良い方法ありましたら教えて頂けると幸いです、よろしくお願いいたします。

  • エクセルで日付セルの参照先が空白の場合の書式設定

    エクセル2016です。 例えばシート1のA列に日付を入れる表があって、そのA列のセルを参照してシート2の$B$2に同じ日付が入る表があります。 このA列への日付の入力を忘れがちなのでシート1のA列が空白セルの場合(=シート2のB2セルが1900年1月1日となる)はセルを赤色にしたいのですが。 書式設定で、セルが「1900年1月1日」の時、としてもうまくいかないのですが。 シート2のB2はOFFSET関数でA列の値を引っ張るので、A1=""では書式が設定できませんのでよろしくお願します。

専門家に質問してみよう