• ベストアンサー

エクセル 文字の不足を検出させる方法

エクセル2003使用  例とし、A1~A9の9箇所のセル(都度入力する箇所はこの範囲内で変わります)に △□◎○×▽ の6個のいずれかの値(文字)を入れるのですが、この6個の文字が1つでも、もれていたら何らかのエラー表示(セルの色が変わるなど)をさせる事はできないものでしょうか?(可能なら6個の文字(△□◎○×▽)の何が不足してるかわかればなお良いのですが)  条件付書式やマクロなどで対応できないでしょうか。よろしくお願いします。(△□◎○×▽は入力規則のリストから選択するようにしてあります)

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

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.4

ユーザー定義関数を作ってみました。 参考になれば幸いです。 '=======標準モジュールに記載============================== Private Function myChk(ByVal argRng As Range) As String   Dim myList As Variant   Dim myAns As Variant   Dim i As Integer      Application.Volatile   myList = Array("△", "□", "◎", "○", "×", "▽")   For i = 0 To UBound(myList)     myAns = Application.Match(myList(i), argRng, 0)     If IsError(myAns) = True Then       myChk = myChk & myList(i)     End If   Next i   If myChk = "" Then     myChk = "完"   Else     myChk = myChk & "が記入されていません"   End If End Function '=======使い方============================== ' 適当なセルに =myChk(A1:A9)  と入力

naginagisa
質問者

お礼

おそくなりました。 すばらしいものを教えて頂き感謝しています。 ありがとうございました。

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

解答No1です。 ごめんなさい次の式は =IF(SUM(H1:H6)<6,"「"&INDIRECT("H"&MATCH(0,H1:H6,0))&"」が抜けています","") 次のように訂正してください。 =IF(SUM(H1:H6)<6,"「"&INDIRECT("G"&MATCH(0,H1:H6,0))&"」が抜けています","")

  • a987654
  • ベストアンサー率26% (112/415)
回答No.5

B1セルに =MID(" △",(COUNTIF(A1:A9,"△")=0)*1+1,1)&MID(" □",(COUNTIF(A1:A9,"□")=0)*1+1,1)&MID(" ◎",(COUNTIF(A1:A9,"◎")=0)*1+1,1)&MID(" ○",(COUNTIF(A1:A9,"○")=0)*1+1,1)&MID(" ×",(COUNTIF(A1:A9,"×")=0)*1+1,1)&MID(" ▽",(COUNTIF(A1:A9,"▽")=0)*1+1,1) これで”△□◎○×▽”のデータのある部分が全角ブランクに 表示されます。(すべてあれば6文字の全角ブランク) このままでもエラー表示となりますが 案1.このセルの文字色を赤にでもしておく 案2.条件付き書式で <>"      "を設定 いかがですか?

naginagisa
質問者

お礼

おそくなりました。 ありがとうございます。 このような方法もあるのですね。 勉強になりました。

noname#204879
noname#204879
回答No.3

数式が  =IF(A1="","",SUBSTITUTE("△□◎○×▽",A1,"")="△□◎○×▽")

naginagisa
質問者

お礼

ありがとうございます。 やり方が悪いのか希望の結果になりませんでした。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 参考になるかどうか判りませんが・・・ 同一セルに入力規則を二通り設定することはできませんので 苦肉の策ですが、条件付書式を併用してみてはどうでしょうか? ↓の画像で説明させていただくと、 A1~A9セルは入力規則からリスト表示させています。 他のセルに(画面ではA13~B13セル)に別表を設けて、 A13セルに =COUNTIF($A$1:$A$9,B13) という数式を入れ、オートフィルで下へコピー 次に B13セルをアクティブにして、メニュー → 書式 → 条件付書式を選択 「数式が」を選択し、数式欄に =A13=0 として、書式から塗りつぶしのパターンを「赤」に選択します。 B13セルの書式をオートフィルでB18までコピーします (この場合オートフィルオプションで、「書式のみコピー」にします) これでA1~A9セルに選択されていないものセルが赤くなります。 尚、余計なお世話かもしれませんが、リスト範囲に空白セルをひとつ選んでおくと、 Deleteで消すのではなく、リストから空白を選べると思います。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

naginagisa
質問者

お礼

おそくなりました。 なるほど・・とこのようなやり方もあるのかた感心しています。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えばリストがG1セルからG6セルに入っているとします。 わかりやすいのは作業列を作って、例えばH1セルには次の式を入力してH6セルまでオートフィルドラッグします。 =IF(COUNTIF(A$1:A$9,G1)>0,1,0) リストから6個の文字が抜けているときにA1セルからA9セルに色を付けるのでしたら次のようにします。 A1セルからA9セルを選んで「書式」から「条件付き書式」で条件の左の窓では「数式が」にし、右の窓には=SUM(H$1:H$6)<6と入力して、同じ画面の「書式」で「パターン」タブから色を設定してOKします。 また、抜けている文字を具体的に表示させるためには、あるセル、例えばB1セルに次の式を入力すればよいでしょう。 =IF(SUM(H1:H6)<6,"「"&INDIRECT("H"&MATCH(0,H1:H6,0))&"」が抜けています","") 抜けている文字列は初めはたくさんあるわけですがリストで最初の文字列だけが表示されます。この表示が空になればすべての文字列がA列に入力されたことになります。

naginagisa
質問者

お礼

大変遅くなりました。 変更分も含め感謝します。

関連するQ&A

  • エクセルの「入力規則」についてお尋ねします。

    エクセル2010です。 あるセルにデータの入力規則を設定します。 条件設定の入力値の種類を「リスト」にし、リストの値は、0,1,2,3と直接指定します。 これで設定したセルにはプルダウンで0,1,2,3を選択するか、直接0~3の数値の入力しかできなくなります。 ここまでは問題ないのですが、このセルにユーザー定義の書式、0"人"を設定して、1は1人と表示されるようにしました。そうすると、直接0~3の数値の入力ははじかれ、プルダウンで0,1,2,3を選択するしか入力ができなくなります。 リストに設定した値を正しく入力しているのに排除されるのはなぜでしょう? いろいろ試し、リストの値を、0,1,2,3と直接指定せず、セル範囲のリスト指定とし、そのセル範囲にもユーザー定義の書式、0"人"を設定しておけばクリアできました。 でも、たかだか数件のリストを指定するのにいちいちリストをワークシート上に作成し、そこにもユーザー定義の書式を設定しなければならないのは腑に落ちません。

  • 入力規則のリストで大文字小文字を区別させたい

    入力規則で元の値に直接リストを書き込んだ場合は、大文字小文字も区別されますよね。 元の値にセルの範囲や名前の定義で範囲を指定したものにした場合、大文字小文字が区別されずに困っております。 例えばシート2のA列をリストの範囲として「一覧」と名前の定義をしたとして、元の値に =一覧 と入れるとちゃんとリストとしては機能します。 ただ、入力規則を設定したセルに直接入力した場合、リストにない単語についてはきちんとエラーメッセージが出てはじかれますが、小文字大文字までは区別してくれません。 例えば、リストの中に「abc」という小文字だけの単語があったとして、セルに「Abc」と大文字を混ぜて直接入力してもそのまま書き込むことができてしまうのです。 「abc」だけを許可して「Abc」だの「aBC」だの大文字を混ぜた物はエラーとしてはじいて欲しいのですが、そういうことはできないのでしょうか? 入力規則だけで片付けたいのですが、VBAを絡めないと無理でしょうか?

  • Excelで文字をグラフに読み込ませない

    グラフの参照範囲の中に関数が書き込まれたセルがあります。 関数は下記の通りです。 =if(A12=0,"",A12) この関数は他のセルを参照している簡単な関数です。 A12=0の場合グラフが値を参照できないようにする場合は、真の場合に何を書き込めばいいのでしょうか? この関数で使うと0としてグラフが読み取ってしまい、グラフが凹んでしまいます。 BLANKを入力する、0文字を入力する方法があれば教えてください。 追記:また""の代わりに#N/Aを入力して、条件付の書式で白文字にする方法以外があればお願いします。

  • (Excel)特定の文字だけ赤字にしたい

    エクセルのシート6枚に渡り、複数セルに大量の文字列が入力されています。 その中で、特定の文字だけを一度に赤字にすることはできますか? マクロ・入力規則・関数・条件付書式など、やり方は問いません。 宜しくお願いします。 例) ・が一つのセルと仮定。「かき」と「けこ」だけを赤字にしたい。  ・あいうえおかきくけこさしすせそ  ・たちつてとなにぬねのかきくけこ  ・はひふへほまみむめもやゆよ  ・かきくけこわをん

  • エクセルのセルの色

    こんにちは。 エクセルで、例えばA1の値が1だったらA1~W1の範囲のセルをピンクに、A1の値が2だったらA1~W1の範囲をブルーにといった設定はどのようにすればよいのでしょうか。A1が1ならA1をピンクにというのであれば条件付書式でできるのですが、他のセルの値に応じて色を変えるのはまた別になるのでしょうか。よろしくお願いします。

  • EXCELで文字を入力すると・・・

    EXCELで文字を入力すると・・・ セルに色がつきます。 条件付書式の設定をしているわけではありません。 原因がよくわからないため、ご存知の方がおられましたら 教えてください。

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

    エクセルの条件付書式について、お尋ねします。 A1のセルには、背景と同じ色で文字が入力されていて、そこに文字を上書きすると、A1のセルの文字の色が黒に変更されるようにしました。 その後B1のセルに文字を入力すると、A1からE1までのセルの背景がグレーになるようにしたかったのですが、A1のセルだけが、塗りつぶされませんでした。 説明が十分かどうかわからないのですが、質問としては、このようなことが、条件付書式で可能かどうか、可能ならば、その方法を教えていただけますでしょうか。 どうぞよろしくお願いいたします。

  • エクセルの条件付書式がうまくいきません・・・・

    エクセルの条件付書式の設定がうまくいきません。 まずA1にリスト(適、不適の二択)があって、「適」の場合にB1のセルが色が透明になり、「不適」の時に灰色になる、というのを目指しているのですが・・・・ 今は、B1セルに「セルの値が 次の値に等しい =A1=”適”(書式で灰色に設定)」という式を入れると、なぜか不適を選んだ時にB1セルが灰色になり、うまくいきます。 ただし、灰色になったセルの上に文字を入力すると、背景が透明になってしまいます。僕としては、文字の有無に関わらず、「適」「不適」の選択のみで背景の色が変わって欲しいのですが・・・・ どのような条件を入力すればよろしいでしょうか。 どうかよろしくお願いいたします。

  • マクロ:範囲内のセルを1つずつ編集する

    EXCEL2003を使っています。 マクロは全くの初心者です。 VBはVB.NETを少しかじった程度です。 A1:A30に値1、B1:B30に値2が入力されています。 (1)B1の値がA1より大きい場合セルの背景色を青色に変更。 (2)B1の値がA1より小さい場合セルの背景色を赤色に変更。 (1)(2)の動作をB1からB30まで順番に行いたいのです。 条件付書式のやり方は分かります。 ですが条件付書式の場合単独のセルを指定する方法しか分かりません。 範囲内のセル全てに1つずつ条件付書式を適用するマクロを組みたいのです。 どなかた知恵を貸して下さい。 宜しくお願いします。

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

    こんにちは。 エクセルである行に「一つ上のセルと同じ値であればセルに色をつける」 という条件付書式を設定しています。 重複セルを発見するために設定しているのですが、 同じ内容のデータは必要ないので、色がついたセルのある行は削除することになります。 すると、それより下の行のセルに設定してあった条件付書式が機能しなくなってしまいます。 設定してある条件付書式はA2なら 「セルの値が、次の値に等しい、A1」という感じです。 これでA2のある2行目を削除してしまうと、元3行目で2行目に繰り上がったA2の条件付書式が 「セルの値が、次の値に等しい、#REF」となってしまい機能しません。 絶対参照にしているわけでもないので、 「自動で補正してくれないのかなぁ?」と思っているのですが どこかにそういう機能があるのでしょうか? 勉強不足の為どうしてよいかわからずみなさんに教えていただきたく 質問させていただきました。 よろしくお願いいたします。

専門家に質問してみよう