• 締切済み

EXCLEでデータベースを打つとき行の色が変わるとうれしいのですが、何かありますか?

アクセスを覚えようとは思っていますが、仕事のデータベース業務をエクセルで行っています。 団地の各項目の数量を打ち込む作業で、列に項目、行に号棟部屋番号を連ねています。現在56列ありまして、ウインドー枠の固定なども使っておりますが、横に打ち込むうちに、違う部屋番号の場所に打ち込んでしまう事も有り、何とかしなくてはと思っています。  打ち込んでいる行に自動で色がつくようなフリーソフトがあったらいいなぁと思っていますが、何かいい方法はありませんか?  項目も塗装のための項目・大工作業のための項目・内装のための項目とそれぞれ20近い項目があり、その大項目でまとめて表示もしたいので、画面は割合と縮小して表示しています。  私の会社は小さいので、パソコンに強い人はいません。簡単なマクロの登録・関数はなんとか、調べながらできますが、VBAとかは分かりません。10日で分かるというものを半日分であきらめました。 お金もそんなにかけられません。詳しい方よろしくお願いします。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です 着色するのはアクティブな行だけですよ。 どの行も同じ色で着色してしまうと、うっかり上下の行にアクティブセルが移動してしまったときに、「結局入力中の行なのかが分からなくなる」ことを防ぐために行番号を3で割った剰余によって行の色を変えるのが#01のマクロです。

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.2

こんにちは。 [条件付き書式]とマクロをちょっとだけ使う案があります。 ↓こちらを参考にしてみてください。 [アクティブセルのある行・列を目立たせる] http://www.relief.jp/itnote/archives/001406.php 上記HPのマクロについての補足ですが、特定のシートだけなら、 そのシートのシートタブを右クリックして[コードの表示]。 VisualBasicEditor(VBE)が起動します。 マウスカーソルがある無地のシート(コードウィンドウといいます)に以下をコピーペーストです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   Application.ScreenUpdating = True End Sub

ottototo
質問者

お礼

すばらしい!! VBAもコードの表示も分からない私にも丁寧にそして、分かりやすく教えていただきました。ネタ帳はよく勉強させていただくのですが、 こんなすごい事も乗っていたのですね。 アンドリューさんのHPにも寄ったら、アドインでどのシートにも気軽にon/offできるものもありました。http://blog.livedoor.jp/andrewj/ これなら、使いたいときに使えるので、うれしいです。 ありがとうございました!! 今はこのサイト、お礼のポイントはなくなったのでしょうか?

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>打ち込んでいる行に自動で色がつくような 打ち込んでいる行はどのように判断すればよいですか? アクティブセルの行に色を着けるのは簡単ですが、それではアクティブセルが上下に移動したとき分からなくなってしまいそうです。 そこで行が移動すると黄色→水色→ピンクと行毎に異なる色で行を塗りつぶすようにしてみました。これなら行が移動したときに色が変わるのでわかりやすいかな? と思った次第です。 以下のマクロを入力するシートの「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けてください。シートに戻り適当なセルを選択してると動きが分かると思います。 なお元のシートで初めから着色しているセルがあると困りますので、カーソルがあるとき着色する行の範囲を指定できるようにしています。変更するなら2行目を修正して下さい(既定値は5行目~1000行目) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Const trg As String = "5:1000" '→ 着色する行の範囲を指定する  Rows(trg).Interior.ColorIndex = xlNone  If Not Intersect(Target, Rows(trg)) Is Nothing Then   Select Case (Target.Row Mod 3)    Case Is = 0     Target.EntireRow.Interior.Color = RGB(255, 255, 170)    Case Is = 1     Target.EntireRow.Interior.Color = RGB(200, 250, 255)    Case Else     Target.EntireRow.Interior.Color = RGB(255, 210, 180)   End Select  End If End Sub なおマクロを貼り付ける前に元のシートはセーブしておいてください。 気に入らなかったときに元の上単位戻せるようにするためです

ottototo
質問者

お礼

早速の回答本当にありがとうございます。 >アクティブセルの行に色を着けるのは簡単ですが、それではアクティブセルが上下に移動したとき分からなくなってしまいそうです。 打ち込んでいるセル=アクティブセルだと思いますが、それは移動するのが前提です。 >そこで行が移動すると黄色→水色→ピンクと行毎に異なる色で行を塗りつぶすようにしてみました。 最初から色を行ごとにつけるという意味なのでしょうか? そのやり方は考えたのですが、自分なりに色別に設定をしている部分も確かにあるので、アクティブであるときだけ、浮き出るようにしたいのです。コードが読めないので違う解釈ならごめんなさい。 回答2の方のやり方で挑戦してみようと思います。 ご親切にありがとうございます。

関連するQ&A