- ベストアンサー
エクセルマクロ初心者のためのBE列の色変更方法
- エクセルマクロ初心者の方が、D18~BE67の範囲に対してBE列の色を変更する方法について教えてください。
- BE列が”無色”の行は、その行のD~BEを無色に、BE列が”灰色”の行は、その行のD~BEを灰色に、BE列が”橙色”の行は、その行のD~BEを橙色にしたいです。また、BE列の1つでも変化があったら、変化があった行の色をすぐに変えたいです。
- マクロを使用しないで色を変更する方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>マクロを使用しないで対応できれば、その方が助かりますが、 BE列に色名がはいっているのなら D18:BE67を選択 「書式」「条件付き書式」で 「数式が」「=$BE18="無色"」で書式ボタンからパターンで塗りつぶしなしを選択 追加ボタンを押し条件2で 「数式が」「=$BE18="灰色"」で書式ボタンからパターンで灰色を選択 追加ボタンを押し条件3で 「数式が」「=$BE18="橙色"」で書式ボタンからパターンで橙色を選択 でOKで条件付き書式を閉じる。 で元の塗りつぶしの色を含めて4色まで設定可能 ※EXCEL2003までは条件3まででしたが、EXCEL2007ではその制限がなくなりました。 といっても条件が多すぎると、重くなるので絞った方がいいでしょうけど...
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>BE列には”無色””灰色””橙色”のいづれかが入っています。 BE列各行には「文字列」で、”無色””灰色””橙色”のいづれかの「文字(列)」が入っていルのか?。珍しいケースなので判りにくい。 それならエクセル2003まででも無色を除き2種なので、「条件付き書式」の操作で出来る。VBA化も可能。 条件付き書式の「数式が」 その数式で、見る列BE列のセル番地表現を$で固定する$ アクチブセルのD1B、セルの代表として考える。 がポイント >BE列には”無色””灰色””橙色”のいづれか「の色」がが入っていますなら、条件付書式では出来ない。 ーー 全行IFやCaseで見ていくのでなく、エクセルのマクロらしいコードは マクロの記録をとることです。 質問とは範囲を変えてます。質問には(理解や内容を捻じ曲げる事態にならないと思われる場合は)A列且つ第1行からの少数行、少数列の例で質問してほしい。回答者が作例、且つテストするのが手間がかかる。 Sub Macro2() Range("A2:D7").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$E2=""灰色""" Selection.FormatConditions(1).Interior.ColorIndex = 15 Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$E2=""橙色""" Selection.FormatConditions(2).Interior.ColorIndex = 44 Range("F13").Select End Sub 例 A2:E7について上記を実行すると A-F列 無色 (第2行) 灰色 灰色 無色 橙色 無色 (第7行) 3,4行に灰色セルパターン 6行に橙色のセルパターンが設定される。
- mshr1962
- ベストアンサー率39% (7417/18945)
一応マクロの方も一例です。 ■BE18:BE67の色名で変化するマクロなら Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 57 Then If Target.Row >= 18 And Target.Row <= 67 Then Select Case Target.Value Case "無色" Range("D" & Target.Row & ":BE" & Target.Row).Interior.ColorIndex = -4142 Case "灰色" Range("D" & Target.Row & ":BE" & Target.Row).Interior.ColorIndex = 15 Case "橙色" Range("D" & Target.Row & ":BE" & Target.Row).Interior.ColorIndex = 44 End Select End If End If End Sub
お礼
条件式書式のこんな使い方ができるなんて知りませんでした。 対応できました。 ありがとうございました。