• ベストアンサー

エクセルの24行毎にカラーの背景色を出したい。

エクセルを使って、1日24時間毎の数値を整理しています。 1日のお終りを意味する24行目をカラーにすると 見やすくなるため、24行目毎にカラーの背景色を出したいのです。 1回の設定で約9000行(1年365日×24時間分)の表に カラーをつける方法を教えていただければ 助かります。 カラーは、薄い緑とか、青をイメージしています。 (過去の質問を見ましたが、ありませんでした)

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

  • ベストアンサー
noname#1523
noname#1523
回答No.6

マクロや条件付書式設定が順当な方法だとは思いますが データ量が多くなると結構負荷が掛ってしまいます。 (9000件ならある程度パワーのあるPCなら大丈夫とは思いますが) 今後該当EXCELブックにシートや計算式の追加が有るのであれば 単純に書式設定をされた方が良いと思われます。 データ内容的に全ての行が同じ書式で有ると思われますので 以下の方法がお薦めです 1)1行目からデータが入力されているとして・・   24行目の色をつけたいセル範囲を選択し、書式設定でパターン色を設定します 2)1~24行を行番号で範囲選択し、右クリックでコピーを選択 3)25~8784行(366*24)を行番号で範囲選択し行番号上で右クリックし   [形式を選択して貼り付け]で[書式]を指定し[OK]をクリック

abouka
質問者

お礼

xxsadayanxx 様 ご回答、ありがとうございます。 ご指示いただきました方法は、一番簡単で 数式も壊さず、時間も掛からず、最適でありました。 今後は、この作業方法で進みます。 教えていただき、大変助かりました。

その他の回答 (7)

  • comv
  • ベストアンサー率52% (322/612)
回答No.8

書き込み時には、記事#5までだたのですが 送信時に確認しないでUPしたために・・・ #6xxsadayanxxさんの記載と完全にかぶった内容で UPしてしまいました 失礼しました。

  • comv
  • ベストアンサー率52% (322/612)
回答No.7

こんにちは 9000行に対して、一定間隔で不変的な塗つぶしを 設定するのでしたら、直接的な設定の方がよろしいかと 思います。 最初の24行目を書式設定で好きなカラーで塗った後 ・その1~24行を選択コピー ・直下行(25行目)を選択した後  [Ctrl]+[Shift] をおしたまま [↓]キー  で空き行がない限りデータ最終行まで選択されます。 ・その状態で 編集 形式を選択した貼り付け 書式 で24行毎の塗つぶしの書式が複写されます。

abouka
質問者

お礼

comv 様 comv様の方法が一番簡単でやりやすいことを #6の回答者様のテストで確認できました。 まことに、気が引けますが、時間的に早い方に ポイントを差し上げることにしますので、 お気を悪くお思いにならないでください。 お世話になり、お時間をとらせてすみませんでした。 そして、ご回答をありがとうございました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

これだけの行数があると条件付き書式を使うのは考えてしまいますね。 条件付き書式の判定についてはRow()なので、計算負荷は余りないかもしれませんが、色を付ける列数が増えれば、このためにファイル容量がどんどん増えていく可能性があります。(全体の23/24についてはある意味、無意味?な算式になるわけですね) 1Bookに何枚のシートがあるかで、算式の量も増えてしまいますね。 マニュアルで色を付けたシートを作成しテンプレートとして使用する方法と比較することも大事でしょう。 下は色を付けるマクロです。最初の5行(***の箇所)で動作を設定します。色を付けたいシートを出しておいて実行します。 ツール→マクロ→Visual Basic Editor で VBE画面に移り、標準モジュールを挿入し 標準モジュールに貼り付けます。 Sub Paint24()   Const startRow = 2 '*** 行ステップをカウントする最初の行   Const lastRow = 9000 '*** 最終行   Const startPaintCol = "A" '*** 色を付ける最初の列名   Const lastPaintCol = "K" '*** 色を付ける最後の列名   Const myColorIndex = 35 '*** 色の指定 34、35などを試してみてください   Const stepRow = 24 '行ステップ数   Dim rw As Long '行カウンタ   Application.ScreenUpdating = False   For rw = startRow + stepRow - 1 To lastRow Step stepRow     Range(startPaintCol & rw & ":" & lastPaintCol & rw).Interior.ColorIndex = myColorIndex   Next   Application.ScreenUpdating = True End Sub

abouka
質問者

お礼

nishi6様へ ご回答ありがとうございます。 私は、マクロの世界はまだ触れたことがありません。 見慣れない単語がたくさんありまして、頭がついて いけるかな?と思えますが、時間を見つけて 必ず上記の方法で挑戦します。 お時間をとらせて、申し訳ありませんでした。

  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.4

条件付き書式が便利です。マクロは頻繁に書く人は問題ないでしょうが この為だけにマクロを書くと後から修正するとき苦労することになります。 但し、#1の方が書かれている2の式で上手くいきません。 正しくは、「=MOD(ROW(),24)=0」です。 問題は先頭の行にヘッダー(見出し)を付けるのが一般的ですから ヘッダーの行数を調整する必要があります。一行の場合は ・=MOD(ROW()-1,24)=0 として下さい。 但し、列単位で選択で設定すると一行目も条件に一致してしまいます。 再度一行目を選択して条件を削除した上で、別の書式をしていするなど して下さい。

abouka
質問者

お礼

HAL007様 ご連絡ありがとうございました。 #2の回答者様の方法で、目的が果たせました。 実は、表の頭に見出しがあり、その調整はHAL007様の ご指示のように書き換えます。 お世話になりました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

関数式による解答が既に出ていることもあり、 VBAであるのでお気に召さないかも知れませんが、良ければ下記でテスト済みです。 ----- i=1 to 100の100(=最下行数)、Cells(a,10)の10(最右列数),RGB()の()内(=色種)は適当に設定してください。0から255までの数で、3つの数をカンマで区切って入れてください。 Modele1に下記を打ち込み、メニューバーの実行をクリックすること。 Sub test01() For i = 1 To 100 a = Worksheets("sheet1").Cells(i, 1).Row() If a Mod 24 = 0 Then ' MsgBox a Range(Cells(a, 1), Cells(a, 10)).Interior.Color = RGB(255, 255, 0) End If Next i End Sub

abouka
質問者

お礼

imogasi様 私はエクセルも初心者であり、VBAを用いた方法があることを 教えていただきありがとうございます。 しかし、いまでもVBAが何であるかわかりませんが、 時間を見つけて、ご指示あったように、テストします。 お時間をとらせたことに感謝申しあげます。 ありがとうございました。

回答No.2

「一回の設定」ということがどういうことなのかわかり ませんが、マクロを使用しないのでしたら、条件付書式を 使用するほうがよいでしょう。 A1が1時間目とした場合―― 1.A1に、[条件付書式]-[数式が] で    =MOD(ROW(),24)=0   と入力し、書式-パターンで好きな色を選択します。   ※A4が1時間目でしたら、=MOD(ROW()-3,24)=0 2.これを必要な列範囲(B1:F1とします)に書式コピー   します。 3.A:F1 を 表全体に書式コピーします。

abouka
質問者

お礼

misatoanna様 教えていただいたように、設定をしましたところ、 24行毎にカラーが出現しました。 今はもう分かりましたが、当初にエクセルシートの カラー設定をしておかないと、設定前に作った数式を用いたデータや 数式などがすべて消えてしまい、はじめは驚きました。 でも、出来ることが分かりましたので、ひと安心です。 ありがとうございました。

  • motomiya
  • ベストアンサー率48% (26/54)
回答No.1

たとえば、A1をアクティブにして、 1.[書式]-[条件付き書式]をクリック 2.条件に「数式が」「=MOD(ROW(A1),24)=0」と入力 ROW関数はセルの行番号を見つける関数 MOD関数は余りを返す関数で、この場合24で割った余りが0の意 3.「書式ボタン」を押して、パターンタブを選び、好きな色を選択。 4.その後、オートフィルで一番下のセルまでドラッグ。左右どちらかのセルにデータが入っていれば、フィルハンドルでダブルクリックすれば、一瞬で終わります。 5.これで24行目ごとに色が付くと思います。 6.以上の作業を自動マクロに記録すれば、もっと楽できます。 ご参考になれば、幸いです。

abouka
質問者

お礼

motomiya様 早くご連絡いただきありがとうございます。 ご指示の方法でテストしましたが、うまくカラーが 表れませんでした。 でも、ROW関数、MOD関数の意味を教えていただき 少し、この関数にも愛着がでてきました。 ありがとうございました。

関連するQ&A

  • エクセルで特定の背景色を持つセル内の数値を検査したいのですが

    エクセルでブック内の全シートに対して、B列からE列に数値が設定されているブックがあり、 A列にデータのナンバーが振られており、最後のデータの一つ下にはデータの終わりを告げる、EOFという文字列が入っています。 その数値群の中で、特定の背景色を持つセルには必ず0が入っているはずなのですが、手入力のミスでいくつかのセルに他の数値が入っていました。 手作業ですとミスが発生してしまうので、エクセルの機能かマクロで以下の条件で検索をかけ、NGデータがあるかどうかの検査をしたいと考えていますが、可能でしょうか。 条件1:セルの背景色=灰色(エクセルの背景色選択画面で一番薄い灰色です) 条件2:セルの数値=0以外の数値や文字列 データの構造例     A列 /  B列   /  C列   /  D列   /  E列   / 1行目 1 /10(背景白)/0(背景灰)/0(背景灰)/10(背景青)/ 2行目 2 /10(背景白)/0(背景灰)/2(背景灰)/10(背景青)/ 3行目 3 /10(背景灰)/0(背景赤)/0(背景赤)/10(背景青)/ 中略 145行目 145 /55(背景白)/0(背景白)/0(背景灰)/0(背景青)/ EOF 上記の場合だとセル2Dに誤った数値が入っていることを告知するようなものを考えています。 シート総数は140シートで、エラーが見つかった時点で検索を終わっても問題ありません。(最後にたどり着くまで修正、チェックを繰り返しますので)

  • 表の1行おきに背景色をつけたい

    ビルダーV9を使っています。 5列300行ほどの表があるのですが これを1行おきの列毎に背景色をつけたいのです。 ExcelのようにCtrlキーを押しながら 複数行指定できないので、困っています。 作業をラクにする方法はありませんか? 何卒宜しくお願い致します。

  • アクセスにおける行の抽出

    お世話になります。 アクセスにて行を抽出したいのですが、どのようにしたらよいのか悩んでます。 教えていただけますでしょうか? 以下のようなデータがあります。 場所    色 ----------------- 東京    赤 東京    青 秋田    白 秋田    緑 秋田    青 大阪    青 大阪    白 福岡    青 色の優先順位 1.赤 2.青 3.白 4.緑 で、 東京の場合、「東京 赤」 秋田の場合、「秋田 青」 大阪の場合、「大阪 青」 福岡の場合、「福岡 青」(福岡は1行なので、ダイレクトに行を抽出する。) という具合に行を抽出したいのですが、 この場合、クエリにて条件を設定すると思いますが、どのようにしたらよいでしょうか? たぶんiif関数を使うのかなと思いますが・・・・・・ またこの元データはエクセルで、2つのエクセルデータを統合して新たな表を作るイメージです。 もちろんエクセルで作成できてもいいのですが、データを操るにはアクセスと思っておりますので、なんとかアクセスできないか思案しております。 よろしくお願いします。

  • エクセル表で、複数行おきにセルの背景色が変わるように設定したいのですが

    エクセル表で、複数行おきにセルの背景色が変わるように設定したいのですが、どのように設定すればよいでしょうか? 対象の複数行を網かけし、他の複数行と見分けやすくなるようにすることはできますが、上書きすると網かけが消えてしまうので困っています。 よろしくお願いいたします。

  • エクセルの背景デザインについて

    エクセルで表を作成した際に、行の背景色を自動で交互につけたいのですがどうしたらよいのでしょうか? WindowsでExcel2003を使っています。

  • Excelの背景色

    Excelである部分を背景色オレンジ色にして保存して閉じて、数時間後に開くとその部分が暗い緑色になっており、メニューバーの背景色の中でオレンジが無くなっており、変わりにその暗い緑色になってます。 別の日に開くとオレンジ色になっています。けど別の日には又暗い緑色になってます。何故でしょうか?

  • エクセルで行頭にある数字で行を揃えたい

    エクセルの使い方で質問です。 エクセルにのA列にID(01~10)が10行入っており、B列に01黒、04白、10赤、C列と4行、さらにC列には02大、05小、06中、08中、09小、と5行入っている状態です。 この表にはは空白がなく上に詰まっている状態です。 つまり1行目には 01 01黒 02大 2行目には 02 04白 05小 と入っている状態です。これらの表を先頭の数値に合わせて整理したいのですが、どのような方法がいいでしょうか? つまり1行目には文字列の先頭が「01」のものが、2行目には文字列の先頭が02のものがならび、該当する文字列がない場合は空白にしておきたいです。 よろしくお願いします。

  • エクセルで背景の色を点滅させる方法について

    エクセル2013で作成した表の数値をある条件の元でセルの背景の色を点滅させる方法を教えてください。 条件  下記条件の元でカーソルの背景の色を点滅させる。     データ範囲は C3~G14     0~500までは青の点滅     501~750までは緑の点滅     751~1000までは黄色の点滅     1000以上は赤の点滅     合計の欄は点滅対象外とする。     ※色付けは条件付き書式設定による色付けとフォントの塗りつぶしと2通りあります。     方法が違うなら別々に教えてください。      

  • マウスが触ったら表中の1行の背景色変えたい

    一覧表を作成しておりますが、その表のある列を触ったら、その列にあるすべてのセル(1行を選択したかのようなイメージ)の背景色を変えたいのですが、どのようにしたらよいでしょうか。 できればCSSで実現したいのですが、無理ならJavaScriptでも結構です。 宜しくお願いいたします。

  • エクセル2003で行を列にしたい

    エクセル2003で 行にならんだ数値を他のシートに列にならべてコピーしたい。 一行ごと、或いは表データを回転させたいのですが 方法はないでしょうか。

専門家に質問してみよう