• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでセルの色付を別の列にも追加するには)

VBAでセルの色付を別の列にも追加する方法は?

このQ&Aのポイント
  • VBAを使用して、Excelの特定の列にセルの色付けを行っています。しかし、同じ行の別の列にも同じ色を付けたい場合、どうすれば良いのでしょうか?
  • VBAで特定の列にセルの色付けを行うマクロがありますが、同じ行の別の列にも同じ色を付ける方法を知りたいです。
  • VBAを使ってExcelの特定の列にセルの色付けを行っていますが、同じ行の別の列にも同じ色を付けたいです。どうすれば実現できるでしょうか?

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 2 And Target.Address = Cells(Rows.Count, "C").End(xlUp).Address Then Target.Offset(0, -1).Value = Date End If 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 = 46 Case 2: c = 4 Case 3: c = 39 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 43 Case 8: c = 3 Case 9: c = 44 Case 10: c = 24 Case 11: c = 40 Case 12: c = 17 End Select End If Target.Offset(0, -1).Interior.ColorIndex = c Target.Offset(0, +4).Interior.ColorIndex = c Target.Offset(0, -1).Font.ColorIndex = IIf(c = 1, 2, 0) Target.Offset(0, +4).Font.ColorIndex = IIf(c = 1, 2, 0) Exit Sub line: Target.Offset(0, -1).Interior.ColorIndex = 0 Target.Offset(0, +4).Interior.ColorIndex = 0 Target.Offset(0, -1).Font.ColorIndex = 0 Target.Offset(0, +4).Font.ColorIndex = 0 End Sub A列に行ったのと全く同じ事をF列にも行うだけです。

dorasuke
質問者

補足

早速ご回答を有難うございました。 御指導いただいたマクロでテストした結果、 B2 に 1/1 と入力したところA2セルには確かにセルに色づけはされました。 ただしF2まで色付けれてしまいました。 F2はA2とは場合により別の値になります。 月初、月末時です。 誠に恐れ入りますが再度御指導願えませんでしょうか。 よろしく御願いします。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

。。。。。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 2 And Target.Address = Cells(Rows.Count, "C").End(xlUp).Address Then Target.Offset(0, -1).Value = Date End If If Target.Row >= 2 And Target.Address = Cells(Rows.Count, "G").End(xlUp).Address Then Target.Offset(0, -1).Value = Date End If Dim c As Integer If Target.Column <> 2 and target.column <> 7 Then Exit Sub If Target.Value = "" Then c = 0 Else On Error GoTo line Select Case Month(Target.Value) Case 1: c = 46 Case 2: c = 4 Case 3: c = 39 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 43 Case 8: c = 3 Case 9: c = 44 Case 10: c = 24 Case 11: c = 40 Case 12: c = 17 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
質問者

お礼

回答をいただきながらお礼が遅くなりました。 なんとか解決しました。 #2で回答いただいてテストしました。 G列に入力するとF列には色は付くんですが今日の日付が出ます。 なぜか原因が分からす調べて今になりました。 F列を ユーザー定義で mm/dd にしていたのを標準したらうまくできました。 知識不足で迷惑掛けます。 有難うございました。

関連するQ&A