• 締切済み

VBAで別々の2列のセルに色付け

WINDOWS XP EXCELL 2003です。 いつもお世話になります。 参照図で A~D と E~H に分けています。 A2 数式が  =IF(B2="","",TEXT(B2,"mm")) E2 数式が  =IF(F2="","",TEXT(F2,"mm")) それぞれには 1(月)から12(月)です。 ※ 数値のみで 月 は含まれません。                      ユーザー定義 mm/dd です。   御指導を仰ぎたいのは A列 と E列 のセルの色づけのマクロを教えていただけませんか。 色コードは後で私が追加します。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 色の配列の内容は、添付の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

参考URL:
http://www.relief.jp/itnote/archives/000482.php
dorasuke
質問者

お礼

ご回答にご尽力をいただき誠に有難うございます。 小生はかなりの時間を費やして色々と検討しましたが中中うまくいきませんでした。 ご協力をいただきながら私の力不足が災いしてご迷惑を掛けています。 現在再質問させていただくためにより具体的に説明した物を作成しています。 再質問の際はこれに懲りずに何卒ご協力いただけませんでしょうか。 よろしく御願いします。 重ね重ね心よりお詫び申し上げます。

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

。。。。。。。色コードとは何なのか,どうやって使うのかは判ってらっしゃるんでしょうね? 回答したマクロを「手を入れず」にそのまま使用すると,添付図のような具合になります。 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) とかなんとかの具合に仕上げてください。 季節にあった色を選んでみるなども楽しいと思います。

dorasuke
質問者

お礼

ご回答にご尽力をいただき誠に有難うございます。 小生はかなりの時間を費やして色々と検討しましたが中中うまくいきませんでした。 ご協力をいただきながら私の力不足が災いしてご迷惑を掛けています。 現在再質問させていただくためにより具体的に説明した物を作成しています。 再質問の際はこれに懲りずに何卒ご協力いただけませんでしょうか。 よろしく御願いします。 重ね重ね心よりお詫び申し上げます。

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

作成例: 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 ていうか,これまでのマクロでも別に問題なかったと思いますけど? 「何を解決したい」のかご相談に書いて頂かないと,全く同じ箇所で足をすくわれる可能性が高いです。

dorasuke
質問者

補足

偉そうにカラーコードは自分でしますといいながらできず済みません。 何度もご迷惑を掛けますがご協力、御指導再度いただけませんでしょうか。 下記の 「  」の中で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)
回答No.1

> A列 と E列 のセルの色づけのマクロを教えていただけませんか。 たとえば、A2セルを黄色くするなら Range("A2").Interior.ColorIndex = 6 ですが、まさかそんなご質問ではないですよね? 何らかの条件で色を塗り分けたいのではないのですか? その条件が質問に書かれていませんが。

関連するQ&A