プロが教える店舗&オフィスのセキュリティ対策術

Excel VBA初心者です。
赤いフォントの数字と黒いフォントの数字を使って表を作ります。(空白のセルも有)
列(C~Y) 行(5~1000)
赤いフォントで数字を入力したら、自動的にセルが黄色で塗りつぶされるようにしたいのですが
どうしたらいいでしょうか?回答よろしくお願いします。


 

A 回答 (6件)

一例です。


イベントプロシージャなのでシートマクロでお試しください。
対象シートタブ上で右クリック→コードの表示→サンプルコードを貼り付けてお試しください。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1:Y1000")) Is Nothing Then Exit Sub
If Target.Font.Color = vbRed Then
Target.Interior.Color = vbYellow
End If
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。早速、コードを貼り付けて実行してみました。
感激です!!できました。ありがとうございました。

お礼日時:2011/10/11 20:25

>「数字を記入してから赤くする」方法を使っています。



「赤くした」ときに「自動で作動するマクロ」という方法はありません。

なので,「一渡り赤文字にした後,赤文字セルを黄色く塗る」マクロを用意しておいて,そいつを手作業で実行してセルを黄色く塗るといった段取りになります。
マクロ以前にエクセルの操作では,Ctrl+Hで置換のダイアログを出し,ダイアログのオプションボタンを開いて書式の置換で「赤いフォント」を「黄色く塗る+赤いフォント」に「全て置換する」という操作を行い,実現します。これを「新しいマクロの記録」でマクロに録ってやると,ほぼそのまま利用できるサンプルマクロを入手することができます。



ところでここで一つ問題があるのは,ご利用のエクセルのバージョンに応じて「赤いフォント」とか「黄色くセルを塗る」といったマクロの書きぶりが違うため,ご利用のエクセルのバージョンに応じていったいどんなマクロを用意すればよいのかが変わるということです。

具体的なマクロの書きぶりは,あなたが実際にご利用になっているエクセルで「新しいマクロの記録」を使い,「赤いフォントのセル」を「黄色く塗る」に置換するにはいったいどんな書きぶりをしたらいいのか,実際に手を動かしてマクロを録ってみて,参考にしてください。


例:Excel2007以降の場合
Option Explicit

Sub Macro1()
'
' Macro1 Macro
'

'
 Application.FindFormat.Clear
 Application.ReplaceFormat.Clear
 With Application.ReplaceFormat.Interior
  .PatternColorIndex = xlAutomatic
  .Color = 65535
  .TintAndShade = 0
  .PatternTintAndShade = 0
 End With
 With Application.FindFormat.Font
  .Subscript = False
  .Color = 255
  .TintAndShade = 0
 End With
 Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
  xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End Sub

前述したとおり,一渡り赤文字を設定した後に,このマクロを実行することで赤文字セルに黄色の塗り潰しを設定します。



#前述したとおりエクセルのバージョンに応じてマクロが違うため,このマクロはExcel2003以前のエクセルでは実行できません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。会社ではExcel 2003を使っていますが、家では2Excel 2010を使っています。
おっしゃる通り置換を使って、マクロの記録を見て確認してみます。初心者の私にも丁寧に教えていただき感謝しています。ありがとうございました。

お礼日時:2011/10/10 11:24

>赤いフォントで数字を入力したら、自動的にセルが…



だいたい「赤いフォントで数字を入力する」って,一体全体どんな操作を考えているのですか?


ふつーは「赤も黒もない通常の文字色(「自動」の色)のセルに数字を記入したあと,フォントの色を赤に変えている」というぐらいが,一般にできることです。
つまり「赤い数字を記入する」んじゃなく,「数字を記入してから赤くする」のがふつーにエクセルを使っているときの段取りですが,あなたは何か特別に「赤いフォントで数字を入力する」シクミとか,あなたが好みの操作の手順があるんでしょうか?


たとえば「先にフォントの色を赤にしてあってまだ入力していないセル」が用意してある,つまり『赤いフォントが設定済みのセルに数字を入力』したらセルを黄色くしたい,といった事なら,まだ手の打ちようもあります。

この回答への補足

回答ありがとうございます。おっしゃる通りですね。「数字を記入してから赤くする」方法を使っています。
申し訳ありません。

補足日時:2011/10/10 00:06
    • good
    • 0

文字色を判定できないのは先の回答者さんの言うとおりです。



というかそもそも、どうせ該当セルの入力時に文字色を変えるんだろうからその時に背景色も設定するのが一番簡単じゃないかな。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2011/10/09 22:09

エクセルには(操作で)「条件付書式」という仕組みがあります。


これはバージョンで相当変わっているので、エクセルの質問異はバージョンを書かないのは、この辺のことがよくわかって無い証拠です。
この条件付書式の条件に使えるのは、「セルの値」(セルの書式やコメントなどとの対比で、セルの値を意識したことありますか。無いでしょう)を問題にして判断されるものです。
だから、質問の>赤いフォント、を条件として、掴めないのです。条件つき書式の「数式が」で式を作るとき、書きようが無いのです。「数式が」に対するもうひとつは「セルの値が」になっています。「セルの書式が」、などが用意されていません。
ーー
だからVBAででもやらないと出来ません。こういう質問をするぐらいだからVBAは経験無いと思います。だから質問のことは質問者には出来ません。VBAを使ってでも、やりたくて、回答丸写しになってもでも、答えがほしいなら、再質問でもしたらどうですか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。勉強不足で申し訳ありません。

お礼日時:2011/10/09 22:05

発想を変えて・・・



普通に、全て黒い色で文字を入れて、

クリックしたら 赤字・黄色染め
サイドクリックしたら 黒字・白地にもどす

っていうマクロの方が、作りやすくないですか。

 頑張ってください。
    • good
    • 0
この回答へのお礼

そういう考え方もあるんですね。ありがとうございます。

お礼日時:2011/10/09 21:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!