• 締切済み

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/7940)
回答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/7940)
回答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

  • 【VBA】曜日の色付け

    XP/2003使用してます。 A列に日付け、B列に曜日を並べています。 B列には=TEXT(A11,"AAA")の数式が入っています。(←この式は訳あってどうしても必要です) B列に【土】もしくは【日】が表示されると、セルを黄色に色付けしたいのです。 例: B1に土が入れば、A1:E1 B2に日が入れば、B2:E1 の範囲を色付けしたいです。 マクロは初心者でいろいろ試しているのですが できません。 どうか助けてください。

  • 入力画面から各月の日付に参照

    WINDOWS XP EXCELL2003です。 参照の図のような表を作成中です。 シートは 「入力」 とそれを月日毎に分けたシート「1~12月」の計13シートあります。 まず、シート「入力」の各列に入っている数式は A列 =IF(B2="","",TEXT(B2,"mm"))  VBAによる色付け B列 ユーザー定義 mm/dd C列 =IF(D2="","",COUNTA($D$2:D2)) シート「1月」の数式は A1 =記入!M1 (2010/1/1) C2 =A1 (2010/1/1) ユーザー定義 d ご指導を賜りたいのは 例えば 「1月」のシートに反映する (2月~12月は同様の方法。) 1 「入力」の D2 ~ D4 は 「1月」の B 4 ~ B6 に 2 「入力」の K2 ~ K4 は 「1月」の C4 D5 E6 のそれぞれに反映 ご指導の程よろしく御願いします。

  • セルが今月に該当したらその列を塗りつぶし方法

    WINDOWS XP EXCELL 2003です。 いつもお世話になります。 ご指導を仰ぎたいのは参照図を参考にして、 E2が今月(この場合は3月)に該当したら 「E3~」の列の指定範囲に色づけをしたい。 私が考えた下記の数式は 条件付書式で設定したが列で1つしか色付けができませんでした。 =AND(YEAR(B1)=YEAR(TODAY()),MONTH(B1)=MONTH(TODAY())) 参照図の内容は A列 文字列 B列 文字列 C3 : E10(参照図のみ) ;例として下記のような数式が     =SUMIF(生産入力!$E:$E,TEXT(F$3,"yymm")&$A4,生産入力!$D:$D) 以上ですがご指導いたたければ幸いです。 どうぞよろしく御願いします。

  • 期間内での重複の確認

    いつもお世話なります。 WINDOWS7 EXCELL2010です。 下図を参考に A列 ユーザ定義 mm/dd B列 ユーザ定義 mm/dd 各列の数式は E2 =A2&C2&D2 F2 =B2&C2&D2 G2 =IF(D2="","",IF(COUNTIF($E$2:E2,E2)>1,"重複","")) H2 =IF(D2="","",IF(COUNTIF($F$2:F2,F2)>1,"重複","")) I2 =IF(D2="","",IF(COUNTIF($E$2:F2,E2)>1,"重複","")) 条件付書式 範囲はA2:B10 =$I2=”重複” 紫 =$G2=”重複” 薄青 =$H2=”重複” 薄ピンク という具合に「入所(A列)、退所(B列)」日での重複はセルの色で確認できますが 6の行は「入所、出所」日は対象にはなりません。 重複のチェックから漏れます。 この期間内の重複を防止したいのですが何かいい方法をご教示いただけませんでしょうか。 よろしくお願いします。

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

    WINDOWS XP EXCELL 2003です。 いつもお世話になります。 現在下記の如く、 A列にマクロを設定しています。 ※A F列には下記の数式が入っています。 A2 =IF(B2="","",TEXT(B2,"mm")) F2 =IF(G2="","",TEXT(G2,"mm")) 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, -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 上記のマクロに追加でF列にも同様にセルの色付けするにはどうすればいいか ご教授を御願いできないでしょうか。

  • VBAで別の列のセルにも色付け~2

    WINDOWS XP EXCELL 2003です。 いつもお世話になります。 ご迷惑とは重々と承知しながら再度質問させていただきます。 1 御指導を賜りたいのは、 現在A列には月度を示す 01~12 が入力され月別にセルの背景色を塗りつぶしていますがこれをA列用のマクロを工夫してF列にも同様に適用したい。 例えば参照図で言うと A7 05 ピンク  A8 05 ピンク A9 06 ライトブルー  A10 07 草色 等のように ※ 参照図のF列のセルには背景色は適用していません。 2 参照図のそれぞれの設定は、   ※ 計画 と 生産はセル位置だけの違いで生産の方は割愛します。 D1 ユーザー定義 mm/dd D2 ユーザー定義 200000 D3 数値 A7 ユーザー定義 mm マクロ ボタン「計画入力」 Sub 計画入力() Dim GYOU '追加 GYOU = Range("C65536").End(xlUp).Row + 1 Cells(GYOU, 2).Value = Range("D1").Value Cells(GYOU, 3).Value = Range("D2").Value Cells(GYOU, 4).Value = Range("D3").Value End Sub ボタン「セルセット」 Sub 計画セル()    Range("D1,D2,D3,D1").Select End Sub A列のセル塗りつぶし Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 8 And Target.Address = Cells(Rows.Count, "C").End(xlUp).Address Then Target.Offset(0, 0).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, -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 御指導よろしく御願いします。

  • 2つの条件で件数を求めたい

    2つの条件で件数を求めたい WINDOWS XP EXCELL 2003 左(A B C列)の表から右(D E F G)のような表を作成したいのですが ご指導いただければ幸いです。 A列  yyyy/mm/dd C列  入力規則で 「A~D コース」が設定 E2 ~ G2 mm ユーザー定義です ご指導を仰ぎたいのは例えば E3 にどんな数式を入力すれば可能でしょうか。 よろしく御願いします。

  • 毎月毎の連番の最後のみに色付け

    いつもお世話になります。 WIN7 EXCELL2010 です。 下記のような関数で月毎の連番を設定しています。 関数 AF2 に =IF(B2="","",TEXT(B2,"mm")&TEXT(SUMPRODUCT(N(TEXT(B$2:B2,"yymm")=TEXT(B2,"yymm"))),"-000")) ご指導を仰ぎたいのは、 例えば 03-001 03-002 03-100 04-001 04-002 のとき 月の最終連番 この場合 「03-100」のセルに色付けをしたいのですが何かいい方法はないでしょうか。 ※毎月の連番の最終にです。

  • 数式が入ったセルで値がないときは詰めたい

    いつもお世話になります。 WINDOWS7 EXCELL2010です。 今回ご指導を戴きたいのは赤枠内です。 A Bは手入力します。 その結果、C D E Fの各列には下記の数式で表示されます。 例えば、 E5 E8 E9 の各列のように空白が出るので「見易く」 したいため詰めるのにどんな関数を入れればできますか。 添付画像で各列の説明です A 手入力 B 手入力 C =IF($B2="","",VLOOKUP($B2,一覧表!$A$2:$B$20,2,FALSE)) D =IF(COUNTIF($B$2:B2,B2)=1,ROW(B1),"") E =IF(K2="","",C2) F =IF(L2="","",COUNTIF($C$2:$C$19,"*"&C2&"*")) どうかよろしくお願いします。

  • ルールに沿ってセルを色づけ

    Excel2010使用です Sheet1とSheet2のA列に、それぞれ規則性のない数字が並んでいます Sheet1に存在する数字を Sheet2のA列の同じ数字に色付けをしたいです 例えば、Sheet1 A列に4278という数字があれば Sheet2、A列にある4278があるセルに色づけされる 説明が下手で申し訳ないのですが そういった数式(ルール)をなるべく単純な方法で教えて下さい

専門家に質問してみよう