• ベストアンサー

エクセルの色付けについて質問です

こんにちは。お世話になります。 以前に似た質問をしたことがあるのですが、 どうか更に教えて下さい。 エクセルで1月2月はピンク3月4月は黄色と色付けをしたいのですが、 以前の質問で6色あるため条件つき書式ではできないことがわかりました。 そこでちょっと考えてみたのですが、 ボタンにマクロを記録させて、ピンクボタンとか黄色ボタンをつくり 色付けを簡単に行えるようにするのはどうかと考えました。 たとえばこういうことなんですが↓↓↓  A B  C D  E F  G  H   I  J  K 1桃 黄 青 水 赤 黒 灰    2 3 A~Gにはボタンをつけて、 2行目3行目も同じボタンをつけて H~Kの同じ行すべてに色をつける感じで…。 1行1行6個ボタンに記録させて、 根気強く頑張るかと思ったのですが、 もっとスマートな方法はきっとあるのでしょうね。 相変わらず説明がうまくなくてすみません。 やりたいことはご理解いただけるでしょうか? マクロは記録して簡単なことぐらいしか出来ないのですが、 もっとスマートな方法があれば教えて頂きたいのです! 宜しくお願い致します。 用はすごく簡単な操作で表に色がつけばいいのですが、 皆さんだったらどのようなやり方をしますか? ぜひ教えて下さい。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

ANo.1です。 元の質問にあるE列に入力された日付で色を分けるとして、 Private Sub Worksheet_Change(ByVal Target As Range)  With Target       If .Column <> 5 Then Exit Sub       If .Cells.Count > 1 Then Exit Sub       If IsDate(.Value) Then          Select Case Month(.Value2)                 Case 1, 6                   '1月と6月                      .Interior.ColorIndex = 7    'ピンク                 Case 2, 7                   '2月と7月                      .Interior.ColorIndex = 6    '黄色                 End Select       Else          .Interior.ColorIndex = 0    '上記以外は色なし       End If  End With End Sub コードの貼り付け方・色番号はANo.1の紹介過去ログを参考にして下さい。 1月・6月と2月・7月以外の月については、 Case 3,8 .Interior.ColorIndex = 色番号 のように、End Selectより上に追加していって下さい。

chakori-na
質問者

お礼

私のつたない文章を解読して、 回答頂いたこと本当に感謝します! ありがとうございます!! ひとまず表の方は理想形ではないにしろなんとかして、 もう少し時間をかけて上記ご教授頂いたことが出来るようになるよう 勉強しようと思います! また、ぜひよろしくお願いします。

その他の回答 (3)

回答No.3

> A1のボタンを押すと、その行のH1:K1を赤く塗りつぶす。 一例です。 まず、次の内容の標準モジュールを記述しておきます。(とりあえず、この ままコピペしてみてください) Sub Test()  Dim NM, RW, Col  NM = ActiveSheet.Shapes.Range(Application.Caller).Name  RW = ActiveSheet.Shapes(NM).TopLeftCell.Row  Col = ActiveSheet.Shapes(NM).Fill.ForeColor.SchemeColor  Range(Cells(RW, 8), Cells(RW, 11)).Interior.ColorIndex = Col - 7 End Sub 次に、A1:G1の各セル内に、セルからはみ出ないようにオートシェイプで○か □を描き、それぞれを好みの色で塗りつぶします。 7つのオートシェイプを全て選択した状態で、どれかひとつのオートシェイプ 上で右クリックし、「マクロの登録」から上記マクロを指定します。 この7つのオートシェイプを、必要なだけ各行にコピーします。 操作が終わったら、オートシェイプを適当にクリックしてみてください。 なお、Shapes.Range(Application.Caller).Name は、マクロ実行のために クリックされた図形の名前です。 > 塗りつぶし用パレットをツールバーから切り離す。 2007でも同じかどうかわかりませんが―― 塗りつぶしアイコンの右にある▼のクリックで表示されるパレットの「塗りつ ぶしなし」の上にあるバーをクリックし、シート上にドラッグします。

chakori-na
質問者

お礼

…っすごい親切な回答にちょっと感動しました…。 手取り足取りすみません。 これなら私にもできそう!と思ってやってみたものの、 端的に言って出来ませんでした… たぶん私が根本的になんにもわかって無さすぎるんですね。 そして回答を拝見して思ったのですが、 今日会社の帰りにVBA関係の書籍等購入して、 これからしばらく勉強してみます! その後改めてこの質問ページを見てチャレンジしてみようかと思います。 絶対そうします。 本当にありがとうございました。

回答No.2

> A~Gにはボタンをつけて、2行目3行目も同じボタンをつけて > H~Kの同じ行すべてに色をつける感じで…。 たとえば、A1 のボタン(赤)を押すと、その行の H1:K1 を赤く塗りつぶす ということですか? それとも、H1を選択しA1を押して赤に、H2を選択しC1を押して黄色に塗る、 といったようなことですか? どちらの場合でも、マクロを使うより、塗りつぶし用パレットをツールバ ーから切り離しシート上において使ったほうが早いような気がします。

chakori-na
質問者

補足

回答ありがとうございます。 前者のA1のボタンを押すと、その行のH1:K1を赤く塗りつぶす です。 説明が上手でなく申し訳ありません。。。 塗りつぶし用パレットをツールバーから切り離してシート上に 置くというのは、どのようにすればいいのか…教えて頂けると幸いです。 あ!エクセルは2007を使用していますが、会社のほかの従業員はみんな 2000とか2003を利用している人も多いです!

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>エクセルで1月2月はピンク3月4月は黄色と色付けをしたいのですが、 >以前の質問で6色あるため条件つき書式ではできないことがわかりました。 以前の質問がわかるならリンクを貼っておくと便利です。 結局1月2月・・・が何を指しているのかが不明ですが、表示された内容で セルに色をつけるのなら、 【条件付書式のVBA】 http://okwave.jp/qa4269434.html こう言った感じのことではないでしょうか?

chakori-na
質問者

補足

http://oshiete1.goo.ne.jp/qa3940570.html 以前の質問のリンクのやり方もわかりませんでした。。。 情けない、コピーしてペーストしてみましたがこれで出るのでしょうか? もしかしたら自分の能力に対してやりたいことの難易度が高すぎるのかもしれないですね。 URL、回答ありがとうございます! マクロの記録しかしたことがなくてですね、 正直参考のURLを見ても、 根本的なところから理解することができませんでした。。。 もう少し自分で勉強をするべきですね。 もし御面倒でなければ私にもできそうな方法があれば、 引き続きご教授いただけると幸いです。。。

関連するQ&A