[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件に合わない場合にセルの色を変更する』(ななこ)
こんばんは。過去の質問を検索してみたのですが、見つけられなかったので
もし以下のようなことができれば、教えてください。
セルにハイフンを含む「123-456」という7桁を入力するべきところを、
誤って「123-45」と6桁になってしまった場合や、1桁多い場合に
そのセルが誤って入力されていると一目で判断できるように
セルの色を変更させることはできますか?
色をつけることができなければ、コメントを出すなど
エラーであることが判断できないかと思っています。
どの関数を使えばいいのか分からないので、教えて下さい。
よろしくお願いします。
規則性はありますか? 数字3桁+ハイフン+数字3桁 って感じでしょうか? (キリキ)(〃⌒o⌒)b
取り合えず、条件付書式で考えてみました。 例: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)
いろいろと教えていただいてありがとうございました!
やっとネットが繋がって、ここにたどり着いたらこんなことに。
上から順に、熟読させていただきます!
(ななこ)
皆さんから教えていただいたもの、試してみました! すごいです!見事に色が変更されました。
今後の参考にもし分かれば教えていただきたいのですが、
今回は「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.