- 締切済み
VBAで別々の2列のセルに色付け
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 色の配列の内容は、添付のURLを参照して設定し直してください。 色配列の1番目は、色なし、2番目以降は1~12は月に対応します。 Private Sub Worksheet_Change(ByVal Target As Range) 色 = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) If Intersect(Target, Range("B:B", "F:F")) Is Nothing Then Exit Sub For Each h In Target h.Offset(0, -1).Interior.ColorIndex = 色(h.Offset(0, -1)) Next End Sub
- keithin
- ベストアンサー率66% (5278/7941)
。。。。。。。色コードとは何なのか,どうやって使うのかは判ってらっしゃるんでしょうね? 回答したマクロを「手を入れず」にそのまま使用すると,添付図のような具合になります。 A2セルなんか真っ黒になっちゃってますが,これが色コードが1のときの色です。 回答したマクロの a = array(0, 1,2,3,4,5,6,7,8,9,10,11,12) の,2番目に出てくる1です。 同様に,色コード2,3,4の色がA3,A4,A5に現れてます。 まっさらのブックを1つ用意し, sub macro1() dim i for i = 0 to 56 cells(i + 1, "A") = i cells(i + 1, "A").interior.colorindex = i next i end sub というマクロを実行します。 セルの数字がそのセルに塗った色の色コードなので,好きな色を選んで色コードの数字を確認し,例えば a = array(0, 1,20,35,24,50,6,5,3,4,8,17,38) とかなんとかの具合に仕上げてください。 季節にあった色を選んでみるなども楽しいと思います。
お礼
ご回答にご尽力をいただき誠に有難うございます。 小生はかなりの時間を費やして色々と検討しましたが中中うまくいきませんでした。 ご協力をいただきながら私の力不足が災いしてご迷惑を掛けています。 現在再質問させていただくためにより具体的に説明した物を作成しています。 再質問の際はこれに懲りずに何卒ご協力いただけませんでしょうか。 よろしく御願いします。 重ね重ね心よりお詫び申し上げます。
- keithin
- ベストアンサー率66% (5278/7941)
作成例: private sub worksheet_change(byval Target as excel.range) dim h as range dim a ’>色コードは後で私が追加します。 a = array(0, 1,2,3,4,5,6,7,8,9,10,11,12) 'ゼロは残し,1から12の色コードを選ぶこと set target = application.intersect(target, range("B:B,F:F")) if target is nothing then exit sub for each h in target h.offset(0, -1).interior.colorindex = a(val(h.offset(0, -1))) next end sub ていうか,これまでのマクロでも別に問題なかったと思いますけど? 「何を解決したい」のかご相談に書いて頂かないと,全く同じ箇所で足をすくわれる可能性が高いです。
補足
偉そうにカラーコードは自分でしますといいながらできず済みません。 何度もご迷惑を掛けますがご協力、御指導再度いただけませんでしょうか。 下記の 「 」の中で4つ程試しましたがどれもうまくいきませんでした。 色のコードを決める所をご指示下さい。 本当に済みません。 private sub worksheet_change(byval Target as excel.range) dim h as range dim a 「インターネットなどて参考にしながら下記の4例で試しました。 1 a = array(0) a = array(1=46) 2 a = array(0) a = array(1)=”46” 3 a = array(0) a = array(1)=46) 4 a = array(0) a = array(1=46) 」 set target = application.intersect(target, range("B:B,F:F")) if target is nothing then exit sub for each h in target h.offset(0, -1).interior.colorindex = a(val(h.offset(0, -1))) next end sub
- merlionXX
- ベストアンサー率48% (1930/4007)
> A列 と E列 のセルの色づけのマクロを教えていただけませんか。 たとえば、A2セルを黄色くするなら Range("A2").Interior.ColorIndex = 6 ですが、まさかそんなご質問ではないですよね? 何らかの条件で色を塗り分けたいのではないのですか? その条件が質問に書かれていませんが。
お礼
ご回答にご尽力をいただき誠に有難うございます。 小生はかなりの時間を費やして色々と検討しましたが中中うまくいきませんでした。 ご協力をいただきながら私の力不足が災いしてご迷惑を掛けています。 現在再質問させていただくためにより具体的に説明した物を作成しています。 再質問の際はこれに懲りずに何卒ご協力いただけませんでしょうか。 よろしく御願いします。 重ね重ね心よりお詫び申し上げます。