[[20030303141530]] 『セル塗りつぶしの色をVLOOKUP関数で反映』(タケ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セル塗りつぶしの色をVLOOKUP関数で反映』(タケ)

セルの塗りつぶしの色をVLOOKUP関数で反映できるのでしょうか。

VLOOKUP関数を使って表を作成しています。そこで、セルの塗りつぶしの色も

反映させたいのですが、可能でしょうか?

何か、方法がありましたら教えて下さい。よろしくお願いします。


 どんなとき、セルの塗りつぶしを行ないたいのでしょうか?

 もう少し具体的なデータや条件などを提示して頂いたほうが

 答えやすいと思うのですが・・・(すーさん)


 わかりにくくてすみません。今現在作成している表を説明します。

 はじめに、シート1のA列にプロ野球セリーグの選手名を所属球団関係無しに、順不同で入力

 していきます。次にB列に、その選手の所属球団名を入力します。(関数を使わずに)

 ※したがってA列は300種類以上、B列は、セリーグ6球団ですので6種類になります

 こてに対して、C列にB列球団の第1節の対戦球団名、D列に第2節の対戦球団名

 を反映させていくようにするとします。(当然、C,D,列も6種類です)

   そのために、

 

      シート2              シート3

    A     B            A     B

   巨人   ヤクルト        巨人    横浜

   阪神    横浜         阪神    広島 

   ヤクルト  巨人         ヤクルト  中日

   中日    広島         中日    ヤクルト

   横浜    阪神         横浜    巨人

   広島    中日         広島    阪神  

 というように作成し、シート2はシート1のC列、シート3はシート1のD列に対応できる

 ようにVLOOKUP関数をシート1のC列、D列に入力します。      

  ・つまりAB列に入力すると自動的にCD列が反映された以下のような表ができるようにしています。

   A     B      C      D  

  氏名  所属球団 第1節相手  第2節相手    

  清原    巨人   ヤクルト   横浜   

  今岡    阪神   横浜     広島      

  上原    巨人   ヤクルト   横浜   

  古田    ヤクルト 巨人     中日        

  福留    中日   広島     ヤクルト   

  井川    阪神   横浜     広島   

  古木    横浜   阪神     巨人   

  阿部    巨人   ヤクルト   横浜   

  東出    広島   中日     阪神  

 そこで今回の質問なのですが 結論から言いますと、球団別にセルの色を変えたいのです。

 たとえば、巨人のセルはオレンジ、阪神のセルはイエローというように。

 そこで私は、シート1のB列、シート2、シート3の球団名のセルを球団別に色分けすると

 自動的にシート1のCD列が色分けできるようにしたいのですがうまくいきません。

 関数では不可能なのでしょうか。もし無理なら大量のセルを簡単に効率よくセルの塗りつぶし

 する方法はないでしょうか。

 以上だらだらと長くわかりにくいとは思いますがよろしくお願いします。


 詳しく書いていただいたのですが、私の力量では「条件付書式」で3色指定することしか

 できませんでした。ごめんなさい。

 多分VBAなどで、「if文で球団名により色を指定する」のを6個ならべて

 ループで6回繰り返す、というようなものがあればできるような気がするのですが・・・

 どなたか解決できる方、回答をよろしくお願い致します。(すーさん)


 気にかけていただいてありがとうございます。(タケ)


 私も勉強のつもりで、マクロを作成してみました。

 if文の羅列であまりスッキリしていませんが、一応6色の色分けはできました。

 (Case関数やFor〜Next関数も使ってみたのですが、うまく出来なかったのです)

 ただ、マクロなので、データを参照したときに、色を付けるということにはならず

 マクロを実行して、色がつくという状態です。

 下の文をマクロの中に貼り付けて、ご自分の色番号に変更してください。

 データは、A列の名前欄のスペース行を検索して、データ件数を判断しています。

 球団の色分けは、B〜D列の3列として設定しています。(すーさん)

 Sub Macro1()

 Dim retu   As String

 Dim cnt    As Long

 Dim gyo    As Long

 Dim lstgyo As Long

 'データの最終行を検索

    Columns("A:A").Select

    Selection.Find(What:="", After:=ActiveCell, LookIn:=xlValues, LookAt:= _

        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _

        False, MatchByte:=False).Activate

    lstgyo = ActiveCell.Row  

 '列を指定する

    cnt = 1

    Do While cnt < 4

        If cnt = 1 Then

            retu = "B"

        End If

        If cnt = 2 Then

            retu = "C"

        End If

        If cnt = 3 Then

            retu = "D"

        End If

 '行を判断して、色を付ける

        gyo = 2

        Do While gyo < lstgyo

            If Range(retu & gyo) = "巨人" Then

               Range(retu & gyo).Interior.ColorIndex = 26

            End If

            If Range(retu & gyo) = "阪神" Then

               Range(retu & gyo).Interior.ColorIndex = 20

            End If

            If Range(retu & gyo) = "中日" Then

               Range(retu & gyo).Interior.ColorIndex = 40

            End If

            If Range(retu & gyo) = "横浜" Then

               Range(retu & gyo).Interior.ColorIndex = 15

            End If

            If Range(retu & gyo) = "広島" Then

               Range(retu & gyo).Interior.ColorIndex = 28

            End If

            If Range(retu & gyo) = "ヤクルト" Then

               Range(retu & gyo).Interior.ColorIndex = 6

            End If

            gyo = gyo + 1

        Loop

        cnt = cnt + 1

    Loop

 End Sub


ありがとうございます。

ただ、私の理解の範疇を超えているというか、今までマクロを作成したことが

ありません。

これを機会にマクロの勉強を始めてみようと思います。

いろいろとお手数かけまして、ありがとうございました。

  

 

 


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.