[[20061104000345]] 『条件に合わない場合にセルの色を変更する』(ななこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件に合わない場合にセルの色を変更する』(ななこ)

こんばんは。過去の質問を検索してみたのですが、見つけられなかったので
もし以下のようなことができれば、教えてください。

セルにハイフンを含む「123-456」という7桁を入力するべきところを、
誤って「123-45」と6桁になってしまった場合や、1桁多い場合に
そのセルが誤って入力されていると一目で判断できるように
セルの色を変更させることはできますか?

色をつけることができなければ、コメントを出すなど
エラーであることが判断できないかと思っています。

どの関数を使えばいいのか分からないので、教えて下さい。
よろしくお願いします。


 規則性はありますか?
 
 数字3桁+ハイフン+数字3桁
 って感じでしょうか?
 
 (キリキ)(〃⌒o⌒)b

はい!「数字3桁+ハイフン+数字3桁」のように決まった形で入力します。


 取り合えず、条件付書式で考えてみました。
 
 例:A1〜A10 までを設定したい場合
1)A1〜A10 を範囲指定
2)書式 → 条件付書式
  「数式が」
  「=(A1=TEXT(SUBSTITUTE(A1,"-",""),"###!-###"))*COUNTA(A1)」
3)【書式】をクリックし、パターンをお好きな色に
  OK。
 
 (キリキ)(〃⌒o⌒)b

 別案でマクロもb
 
 シートモジュールへコピペ
'---------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iro As Integer
    If Target.Count <> 1 Then Exit Sub
    With CreateObject("VBScript.RegExp")
        .Pattern = "^\d{3}-\d{3}$" 'ココを修正しました
        If .Test(Target.Value) Then
            iro = 0
        Else
            iro = 3
        End If
        Target.Interior.ColorIndex = iro
    End With
End Sub
 
1)シートタブを右クリック → コードの表示
2)出てきた画面に、上記コードをコピペ
 
 (キリキ)(〃⌒o⌒)b


 キリキさんっ条件付き書式の方
 これだと「正しい時」に色がついちゃいますよ。(汗)
 でもって、“−”前の桁数違いがスルーです。(涙)

 (HANA@小姑)

 あぁ〜〜〜〜
 間違い!取り消し!!
 
 違う方をUPしちゃった。。。
 
 こっちが最初にUPしたかったものb
 =A1=TEXT(SUBSTITUTE(A1,"-",""),"###!-###")=FALSE
 
 そして、HANAさんのご指摘に対応したものb
 =A1=TEXT(SUBSTITUTE(LEFT(A1,7),"-",""),"###!-###")=FALSE
 
 HANAさんサンクス
 (キリキ)(〃⌒o⌒)b

 ◆条件付き書式で
 ■手順■
 1)A1:A10の範囲を指定します
 2)メニューバーの[書式]−[条件付き書式]を選択します
 3)「数式が」に変更して、=(A1<>TEXT(SUBSTITUTE(A1,"-",),"###-###"))+(LEN(A1)<>7) と入力します
 4)右の「書式」をクリックして、パターンで色を指定して、OK
 (Maron)

皆さん、ありがとうございます!!

キリキさん>
マクロの方ですが、Aの列だけに設定したい場合は
どのように変更したらいいですか?
詳しくなくてごめんなさい。勉強のため、知りたいです。


 キリキさんっ
 “−”前の桁数不足がスルーです。(涙)

 ななこさんへ
 文頭を半角スペースで始めると改行出来ますよ。
 ←この部分。
 &文章の最後にニックネームをお願いします。

 (HANA@小姑)


 ◆「条件付き書式」の式を変更します
 =(A1<>TEXT(SUBSTITUTE(A1,"-",),"000-000"))
 (Maron)

 1つ目の If の下に
 If Target.Column <> 1 Then Exit Sub
 または、
 If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
 を入れてください。
 
 1つ目は、A列 全部の時に使用するといいかも
 2つ目は、A1:B10 等、範囲を選択する場合にいいよb
 こちらの場合は、Range(範囲) という感じで範囲を設定できます。
 
 >“−”前の桁数不足がスルーです。(涙)
 あれま・・・
 数式はちょっと時間を頂きましょうw

 (キリキ)(〃⌒o⌒)b

 キリキさん
 私はまだ悩み中です。
 なかなか短くならないものですね・・・。

 (HANA)

 Maronさんっ
 “−”前の桁数超過がスルーです。(涙)
 さらに、"-" 以外の記号でも。。。
 
 >私はまだ悩み中です。
 今回のって、結構難題かも。
 
 時間を頂きましたb
 =(AND(LEN(A1)=7,ISNUMBER(--SUBSTITUTE(A1,"-",)),A1=LEFT(A1,3)&"-"&RIGHT(A1,3))+(A1=""))=0

 (キリキ)(〃⌒o⌒)b


 難しいですよね。
 最初にLEN=7を見ると
 「12-1234」
 こう言うのが駄目なんですよね・・・。

 (HANA)

 おじゃまします。
 数字3桁+ハイフン+数字3桁 の入力を見直し、
 数字6桁で入力する・・のは論外!?(あきお)

 >数字6桁で入力する・・のは論外!?
 いや!
 ありかもw
 
 それでも懲りずに、数式に挑戦b
 =A1<>TEXT(LEFT(A1,3),"#;;;")&"-"&TEXT(RIGHT(A1,3),"#;;;")
 
 どう?少しは短くなった?
 (キリキ)(〃⌒o⌒)b

 ・・・衝突。

 よく見ると
 >LEN(A1)=7
 この部分、動いてないみたいですよ。

 って事で、私も懲りずに
 =ISBLANK(A1)*10+(A1=(LEFT(A1,3)&"-"&RIGHT(A1,3)))*1<10
 こんなのはどうでしょう。

 (HANA)

 あれ?
 =ISBLANK(A1)+(A1=(LEFT(A1,3)&"-"&RIGHT(A1,3)))=0
 これですね・・・。

 (HANA)

 HANAはん。
 わては、もう寝ますけんど・・・
 
 abc-def
 は、どないでっか?w
 (キリキ)(〃⌒o⌒)b

 =AND(NOT(AND(LEN(A1)=7,MID(A1,4,1)="-")),A1<>"")
(JJJ)


おはようございま〜す。。。♪

 私も参加〜。

 =(ISNUMBER(--SUBSTITUTE(A1,"-",)))*(LEN(SUBSTITUTE(A1,LEFT(A1,FIND("-",A1)),)) 
 =3)*(LEN(SUBSTITUTE(A1,"-",))=6)

 じゃ、ダメかな?

。。。。(Ms.Rin)〜♪♪


 せんせぇ、.Patternの初めに^ 最後に$を入れとかなA123-3335 1393-33833も色が
 つきまへんでぇ。(笑
 "^\d{3}-\d{3}$"などとしてもいけまんなぁ。
        (弥太郎)

 ししょ〜♪
 ありがとうございますb
 
 条件付書式も駄目でしたか・・・
 やっぱり、まだ理解が出来てないんだな。。。
 頑張りまっす!
 
 コードは修正しておきました^^
 (キリキ)(〃⌒o⌒)b

 うぐぅ。数字以外は想定外でした。>キリキさん

 (HANA)

皆さんに質問したままで何も返事をせずにすみませんでした。。
昨日、PCが故障しまして・・やっと復活しました。

いろいろと教えていただいてありがとうございました!
やっとネットが繋がって、ここにたどり着いたらこんなことに。
上から順に、熟読させていただきます!
(ななこ)


 皆さんから教えていただいたもの、試してみました!
 すごいです!見事に色が変更されました。

 今後の参考にもし分かれば教えていただきたいのですが、
 今回は「123-456」というように、7桁でしたが、
 桁を増やしたい場合(1234-1234-1234-1234など)は、キリキさんが
 最初に教えてくださったマクロを変更するのが一番簡単ですか?
 マクロのこの部分→「.Pattern = "^\d{3}-\d{3}$"」

 この部分を、「.Pattern = "^\d{4}-\d{4}}-\d{4}}-\d{4}$"」と変更すれば
 OKかと思ったのですが、問題ないでしょうか!?

 (ななこ)

 > この部分を、「.Pattern = "^\d{4}-\d{4}}-\d{4}}-\d{4}$"」と変更すれば
                                         ↑   ↑
 ↑の部分?? 「}」の数が合うてまへんわなぁ。それを取り除いたらOKデス。
 なお、"^(\d{4}-){3}\d{4}$" と書く事もでけます。
       (弥太郎)

 こんな場合も?

 .Pattern = "^(\d{3,4}-){1,3}\d{4}$"

 (seiya)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.