• ベストアンサー

マクロで色分け

名前の一覧で名前別で1つおきに色分けして見やすくしたいのですが同じ名前が3つの物もあれば2つの物もあるのでどうしたらいいかわかりません。 例えば・・ A1~3にハサミ(この行のセルに色) A4~5にのり(この行は色なし) A6~7にえんぴつ(この行のセルに色) 色はすべて同じ色でOKです。 沢山あるので1つ1つの作業はちょっと時間がかかりすぎます。どなたかマクロを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#2 Wizard_Zeroです。 すみません。違うコード送信しちゃいました。 こっちが正解です。 Dim I As Long Dim strBefore As String Dim blnPaint As Boolean I = 2 strBefore = Sheet1.Cells(1, 1).Value blnPaint = True Do Until Sheet1.Cells(I, 1).Value = "" '一つ上のセルと内容が異なる場合 If Sheet1.Cells(I, 1).Value <> strBefore Then '色つけを切り替える blnPaint = Not blnPaint strBefore = Sheet1.Cells(I, 1).Value End If 'blnPaintがTrueのときにセルに色をつけ、Falseのときに色を消す Sheet1.Cells(I, 1).Interior.ColorIndex = IIf(blnPaint, 6, xlNone) Sheet1.Cells(I, 1).Interior.Pattern = xlSolid I = I + 1 Loop

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

回答としては、#1のshkwtaさんの方法が一番よろしいかと。ただ、マクロでということですから、回答させて頂きます。 マクロの方法も#3 Wizard_Zero さんのご回答で、ご希望どおりできます。以下のコードは、Wizard_Zeroさんのパクリm(_ _)m)ですが、ご参考までに。 ユーザーが色分けする範囲、キー列の指定、塗りつぶしの色を指定できるようにして、汎用的に使えるようにしたものです。 【以下コード】 Sub アイテム別で色分け()   Dim DataRng As Range, KeysRng As Range, CurrentCell As Range   Dim PrevDat As Variant   Dim Flag  As Boolean   Dim intColorIndex As Integer   'データ範囲の取得------------------------------------------------------   On Error Resume Next   ActiveCell.Select   Set DataRng = Application.InputBox( _   Prompt:="色分けする範囲を選択して下さい", Type:=8)   If DataRng Is Nothing Then Exit Sub   DataRng.Select   Set KeysRng = Application.InputBox( _   Prompt:="次に、色分けのキーとなる列を選択して下さい", Type:=8)   If KeysRng Is Nothing Then     Exit Sub   Else     If KeysRng.Columns.Count > 1 Then       MsgBox "複数の列は指定できません", vbCritical, "中止"       Exit Sub     End If     Set KeysRng = Columns(KeysRng.Column)   End If   On Error GoTo 0   'セルの背景色取得------------------------------------------------------   Application.Dialogs(xlDialogPatterns).Show   intColorIndex = ActiveCell.Interior.ColorIndex   'セルの背景色設定------------------------------------------------------   Application.ScreenUpdating = False   With Intersect(DataRng, KeysRng)     .Select     PrevDat = Cells(.Row, .Column).Value   End With   Flag = True   For Each CurrentCell In Selection     With CurrentCell       If PrevDat <> .Value Then         Flag = Not Flag         PrevDat = .Value       End If       With Intersect(Rows(.Row), DataRng).Interior         If Flag Then           .ColorIndex = intColorIndex         Else           .ColorIndex = xlNone         End If       End With     End With   Next CurrentCell   ActiveCell.Select End Sub

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

Wizard_Zeroと申します。 Dim I As Long I = 1 Do Select Case Sheet1.Cells(I, 1).Value '色をつけたい項目をカンマで区切って並べる Case "ハサミ", "えんぴつ" Sheet1.Cells(I, 1).Interior.ColorIndex = 6 Sheet1.Cells(I, 1).Interior.Pattern = xlSolid '空白のセルがあったらループ終了 Case "" Exit Do 'それ以外の場合は背景をつけない Case Else Sheet1.Cells(I, 1).Interior.ColorIndex = 0 End Select I = I + 1 Loop もし、途中に空白行がある場合は、Forループなどに置き換えてください。色は適当です。ColorIndexの値を変えれば変わります。

全文を見る
すると、全ての回答が全文表示されます。
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

マクロを使わないでできます。 B1に1 B2に =IF(A1=A2,B1,1-B1) これをB3から下に必要なだけコピー A1をクリック→書式→条件付き書式→「数式が =B1=1」 と設定→書式の「パターン」で適当な色を設定 A1をコピー A2から下をドラッグ→形式を選択して貼り付け→書式→OK

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelのマクロでセル内の数値によってセルの色分け

    はじめまして。マクロ初心者です。 よろしくお願いいたします。 エクセルに入力されている数値によってセルを色分けしたいのです。 数値はこんなふうに入力されています↓ A0*22*33*44              B1*22*33*44 A2*12*55*66               D1*77*22*88              C1*12*55*66               E2*99*12*11  こういったものが全部で1500行ほどです。 *は空白を表しています。 この中の、空白を入れて左から4つめの数字が2、5つめが2のときは赤、 左から4つめの数字が1、5つめの数字が2のときは青、 それ以外のときはそのまま… といった具合に全部で5種類5色に色分けしたいのですが、どうにも能力が足りなくて困っています。 最初、自分なりにネット等参考にしながら「22という数値を含むセルは赤」といったように作ったのですが、 どうしても左から4文字目5文字目に限定しないと余計なセルにも色が付いてしまうのです。 もう2日も悩んでいますが、どうにも手も足も出ません。 ご指導いただけると本当に助かります。 どうぞよろしくお願いいたします。

  • Excel2007で、行の自動色分けについての質問です。

    Excel2007で、行の自動色分けについての質問です。 B1とB2をセルの結合で一行にします。その左A1、A2はそのままにしておきます。これをワンセットとして考えます。つまり一列目は二行、2列目は1行になっているものを一単位として考えるという意味合い。 MOD関数で一行単位で色分けできますが、この一単位を一行と考えて、色分けしようとしても1列目の余りが違うので、一列目は色つきのセル(行)とそうでないセル(行)に別れてしまいますし・・・ なにかいい方法があればお願いします。

  • 【条件付き書式】では設定できないセルの色分け設定方法について

    こんばんは。いつもお世話になっております。 早速ですが、下記のような作業をしたいのですがマクロを使用せずに条件付き書式で出来るかと思い、挑戦したのですが出来ませんでした(汗) ◆エクセルのバージョン → エクセル2003 ◆データ項目 A1(氏名)/B1(性別)/C1(取得ID)…略… K1(参考URL) という項目で、件数は毎月変動しますがMAXで60件ほどです。 ◆やりたい事=セルの色を自動的に色分けさせたい C列(取得ID)に“1”が入力されたら、その行全て(セルA~セルK)のセル色を水色に、“2”が入力されたらピンクに、“3”が入力されたら黄緑にしたい。 マクロを使用しなくてはならなさそうなのですが、私はマクロを一切、使ったことが無い為、皆目検討がつきません…。 勉強不足で恐縮ですが、どなたかお手すきの方いらっしゃいましたら、どうぞご教授願います。

  • セルの色分け

    質問失礼します。 エクセルに入力する際、区切りや色分けをし、見やすくして、入力していきたいのですが、一本、一本線を引くことはできたのですが、2万行ほどあるので、いっきに区切りを入れる方法などあるのでしょうか。 理想は5行ごとに、セルの色分けをして、かつ、20行ごとに区切り線をいれていきたいです。 データを入力後は、区切り線や色などを消し元に戻す予定でいます。 できるでしょうか? お願いします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 たとえば、 セルA1からAA1までのセルの中で、コピーとペーストを行います。(これは記録マクロで作ります) それと同じ作業を、3行下のA3からAA3の行でも行い、 また、3行下のA6からAA6の行で行う といった作業をマクロで作る方法を 教えていただきたいです。

  • エクセル色分け

    エクセル2010であるセル(A1)の値が以下の値に入力したときに 自動で隣のセル(B1)に右の値を入力して、かつその行全体(1行目)をB1の値に応じて 色分けするようにしたいのですが、そのやり方がわかりません。 445~475→000 400~430→00 355~385→0 310~340→1 265~295→2 220~250→3 175~205→4 130~160→5 85~115→6 どうかそのやり方を教えて下さい。

  • 行とセルの色分けを複数できる関数を教えてください

    Excelで、行及びセルを決まった色に分ける関数を教えてください。たとえば、1行目のセルにAさん、2行目にBさん、という先生の氏名を入力すると、セルだけでなくその人の担当する行(生徒の氏名、電話番号、住所が記載されている行)も特定の色になる変化する関数です。3人なら条件付きの方法で色分けできるのですが、10人、20人となると入力の限界があるのでできないのです。よろしくお願いします。

  • Excel条件付書式/他のセルの条件での色分け

    こんにちは。よろしくお願いします。 条件付書式の設定で困っています。 Excel2010です。 A1セルに「△」を入力すると、 △が入った1行がすべてグレーになるように設定したしたく、 1行目のセルに 「セルの値」が「次の値に等しい」「=A1="△"」 として、あとは書式の色をグレーに設定してみたのですが、 A1に△を入れてみても一向に色が変わりません。 どのように設定すれば、他のセルで入力された条件に対して 色分けすることができるでしょうか? ちなみにA1セル自体に設定して、△を入力すると A1だけはグレーに変わりました。 初歩的な質問ですみません。ご指導ください!

  • エクセルで行ごとの色分けと曜日での色分けを複合したい

    現在エクセルで 入力列を =MOD(ROW(),2)=1 の条件書式で行ごとに色分けをして見やすくしています。 左列に日付があり 日付列は =WEEKDAY(A11)=7 の条件書式で土日を色分けしています。 毎月左の日付を変更した後 右の入力列の日付の土日を手動で赤く文字色を 変更しているのですが さらに一発でこのようにしたいと思い 現在の MOD関数の上に WEEKDAYを重ねたところ訳わからない ぐちゃぐちゃしたセル色と文字色になってしまいました。 行ごとに色を変えてさらに土日に当たる行の 文字色を変更したいのですが どのようにしたらよいのでしょうか それともどちらか一方しかできないのでしょうか どなたかお教えください よろしくお願いします

  • 条件で色分けするマクロ

    教えてください! お願いします。 本当にマクロを勉強したてで、ほとんどわかりません。 エクセル(XP/ver,2003)でリストを作成し、その中に特定の文字が入力されるとセルに特定の色がつくようにしたいのです。 例:A1に合格と文字を入れるとA1:E1までのセルが赤く塗りつぶされる。(リストはA1:E500の予定) 本当に基本的な質問で恐縮ですが、ご回答お願いいたします。

このQ&Aのポイント
  • WMC-X1800GST-Bを使用している際、セットアップのWAN&LAN設定をすると、ルーターの電源が自動的に落ちてしまう問題が発生しています。
  • この問題はいつから発生しているのか、具体的な発生時期が不明です。
  • 質問者は、表示される画像やスクリーンショットを添付して詳細な情報を提供するように要求しています。
回答を見る

専門家に質問してみよう