• ベストアンサー

エクセルのVBAを使った条件付き書式

merlionXXの回答

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

#1,#4のmerlionXXです。 先ほどの#4では、一旦1を選んでから、2~4を選びなおしても1としてカウントされたままでした。 訂正します。 Dim a As Integer Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub If Selection.Count > 1 Then Exit Sub a = Target.Value End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub If Selection.Count > 1 Then Exit Sub x = Target.Value c = 0 If a = 1 Then If x Like "1*" Then c = 6 If x Like "2*" Then c = 4: Range("B1").Value = Range("B1").Value - 1 If x Like "3*" Then c = 34: Range("B1").Value = Range("B1").Value - 1 If x Like "4*" Then c = 3: Range("B1").Value = Range("B1").Value - 1 Else If x Like "1*" Then c = 6: Range("B1").Value = Range("B1").Value + 1 If x Like "2*" Then c = 4 If x Like "3*" Then c = 34 If x Like "4*" Then c = 3 End If Target.Interior.ColorIndex = c End Sub

ao_
質問者

お礼

ありがとうございます! これで目的が達成できそうです。 最後にお伺いしたいのですが、VBAを学ぶのにmerlionXXさんがおすすめする書籍がありましたら教えていただけないでしょうか。 全くの初心者向けでお願いします。

関連するQ&A

  • エクセルの条件付き書式について

    A1セルに「100」が入力された場合、B1セルの色を赤に、同様にして200:青、300:黄、400:緑、500:赤、600:青、700:黄、800:緑という風にB1セルの色を変えたいと思います。 条件付き書式は3つまでしかないのですが、色のパターンは4種類なので、元の書式と合わせると4パターンです。 条件付書式で、A1セルの値が200又は600ならB1セルの色を青にするにはどうすればよろしいでしょうか。 つたない文章でわかりにくいかと思いますが、よろしくご回答ください。

  • 条件付き書式(エクセル2003)について

    セル C1 の値(文字列)がXならばセルA1 の背景色を黄色にしたいんですが、「条件付き書式」からどうすればいいのでしょうか?A1を選択して条件付き書式、数式が、まではわかるのですがここからどうしましょうか? =C1="X" で、パターンから色を黄色にすればいいんでしょうか???

  • EXCELで条件付書式を使いたいが

    またまた質問させていただきます。 条件付書式を使ってセルの色を変えようとしたのですが、条件が6条件有り出来ませんでした。 やりたいことは、C5~AJ54の範囲のセルに下記の文字が入ったとき、そのセルの色を変えたいのです。 入力  セル色 赤外---黄色 青外---黄色 赤中---緑色 青中---緑色 赤内---青色 青内---青色 といったことがしたいのです。 VBAを使ってセルを塗りつぶす例などを調べてやってみましたが、勉強不足で旨くいきませんでした。 どうか、宜しくお願いします。

  • エクセル2013 条件付き書式の複数条件について

    エクセル2013で、日ごとの実績を集計しています。 実績シートから、集計シートに、実績を引っ張ってきています。 (INDEX関数・MATCH関数・ISERROR関数などを使用) 条件付き書式で、(1)特定の曜日の列の背景を黄色くしています。 (=FIND(TEXT(P$5,"aaa"),$D6)・・・P5の曜日情報が、D6に含まれている場合に、塗りつぶしパターンの色はを黄色くしています。 また、(2)0の値を白にしています。 (セルの値が、0に等しいとき、フォントの色を白、塗りつぶしパターンの色は自動にしています。) その結果、(1)の曜日で、実績が0の場合は、背景が黄色・値が0で表示されます。 また、(2)の条件を、条件付き書式→ルールの管理で、最も上に持ってくると 0の値が白くなるのは良いのですが、背景も白くなってしまいます。 (1)の条件を満たして、実績が0の場合は、背景を黄色、文字列を黄色にしたいのですが、 条件付き書式で設定が可能でしたら、教えていただけないでしょうか。 ちなみに、引っ張ってきている値が0の場合、空白が表示されるようにしたのですが、「SUMPRODUCT((P20:AT20>0)*((P$4:AT$4=N20)))」で、P20:AT20にその空白が入っていても 実績が計上されてしまいます。 アドバイスいただけないでしょうか。

  • Excel VBA 条件付書式の条件満たすセル取得

    Excel2010のVBAで条件付書式の条件を満たすセルの番地を取得したい 具体的には、 Excel2010のあるシートのあるセル範囲(例えばA1~XFD1048576)に 条件付き書式が付けてあって、 (例えば、数式の条件が満たされたら背景色を赤色にするなど) この条件を満たすセルに指定した書式が付けられて表示されています。 この状態で、VBAで、この条件を満たしたセルの番地を、 順番に取得したいのですが、どのように記述すればよいでしょうか。 【追記】 数式をすべてのセルに入れて検出する方法や セルをひとつずつ数式に当てはめてみていく方法は、 セルが膨大なため容量的・時間的にNGです。 このため、条件付き書式で回避しています。 条件付き書式の判定結果である書式(この場合でしたら背景色が赤色) で判断する必要があります。(書式は背景色が赤色でなくてもいいです) よく分かりませんが、検索の中の書式で指定しても、 この条件付き書式の判定結果の書式はヒットしませんでした。

  • Excelの条件付き書式を行に適用するには

    Excelで条件付き書式ってありますよね。 あの機能を使って セルの値が○○に等しいとき セルの色を設定することはできますが,その行すべてを色を変えるというのはできませんか? 例えばA1セルの値が1なら 1行は赤色。A7セルの値も1なら7行も赤色。 A3セルの値が5なら 3行は青色。 A9セルの値も5なら 9行も青色。 というようにしたいのですが・・・ また, もう一つ質問ですが この条件付き書式は 条件が3つまでしかできませんよね。 例えば 上の条件に付け加えて さらに A10セルの値が4なら 10行は黄色と設定したとすると それ以上できないですよね つまりA11行セルの値が9なら 11行は 緑色としたい場合は どうすればいいでしょうか?

  • EXCELの条件付き書式でできますか?

    セルA1からセルA8までの中で、最大の値が入っているセルに背景色(塗りつぶしの色)をつけたい。値が直接数値で入力された場合と、式で計算された場合とに分けて方法が異なれば、それぞれ知りたい。条件付き書式でできれば有り難いのですが。

  • Excelの条件付き書式について

    Excelの条件付書式について教えてください。 次のようなことをしたいです。 (1)10個のセルに次のような条件付書式を設定します。  ・条件1:セルの値が5以上だったらセルの塗りつぶし(パターン)を青色にする。  ・条件2:セルの値が5未満だったらセルの塗りつぶし(パターン)を赤色にする。 (2)別の1つのセルで上の10個のセルを監視して  すべてのセルが青色だったら"PASS"と表示する。  ひとつでも赤色のセルがあったら"FAIL"と表示する。 VBAを使用して、条件付書式が設定されたセルを参照し、 どちらの条件付書式が適用されているのか調べられるのなら、 それでもかまいません。 条件付書式でセルの色(パターン)を設定した場合、 セルの.Interior.ColorIndex 及び PatternColorを参照しても、 塗りつぶしはされてないという扱いになっているようです。 なにか方法があるでしょうか?

  • 条件付き書式について

    セルA1の値が1の時、セルA2のセルの色を赤で塗りつぶすみたいなことを 条件付き書式でできますか? 条件付き書式でなくても良いのですが、VBA以外で 自分以外のセルの値に応じて、塗りつぶす色を変えたいです。

  • Excel 条件付き書式 3つ以上の条件を設定したい

    Excel2002 条件付き書式を使用して下記の様に数値を入力することにより6個のセルの色をつけたいです。 1→赤 2→黄 3→緑 4→紺 5→青 6→紫 VBA以外で出来る方法がありましたらよろしくお願いいたします!