エクセルで、特定の文字列(複数あります)を入力した場合にエラーメッセージを表示したいと思っています。可能でしょうか?

仕事上で使うシートなのですが、
私が表の枠と見出しのみ入れたものに、他の部署の人がデータを入力して、また私宛に戻してきます。その後、そのデータをcsvファイルに変換し、あるソフトで読み込みデータを処理します。

入力してもらうデータの形には一定の決まりがあり、入力してはいけない文字列があります。
例えば、都道府県名を入れるセルがあり、
「都」「府」「県」は入力してはいけない(入力すると、最終的にデータを使用するソフトでエラーになる)、
つまり、「東京都」は誤りで「東京」とするのが正しいというものです。

入力するセルとは別のセルに、関数で「都」「府」「県」を除いた文字列を表示するようにしようかと思ったのですが、これでは見た目上の解決にしかならず、結局csvファイルにした時にエラーになってしまいます。

そこで、入力規則の設定で「~都」「~府」「~県」の文字列の場合にエラーメッセージが出るようにしたいのですが、
このように入力してはいけない文字が複数ある場合の数式がわかりません。
(「~県」だけが入力禁止なら、入力規則→設定で、許可=ユーザー設定 にして、数式を「=countif(A1,"*県")=0」とすれば出来るのですが……)
入力可能な文字数の設定で回避しようにも、「東京」は2文字ですが「鹿児島」は3文字です。

また、他の入力項目で、特定の文字列については置き換えが必要なものが出てくるので
(例えば「株式会社」→社名の先頭の場合は「カ)」、社名の後ろの場合は「(カ」など。)
関数などで自動的に変換されるより、入力直後に人間が誤りに気づいて訂正できるものの方が都合がよさそうです。

なお、アナログな方法ですが、見出し部分に ”「都」「府」「県」は入力しないでください” など注意書きは入れています。しかし、それに気づいてもらえていないのか、それとも勢いで「~県」と入力してしまうのか、ほとんど効果なしです。

こんな状況なのですが、入力時にエラーを表示する方法を教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

No.3です!


たびたびごめんなさい。

前回のコードでは「京都府」の場合、「京都」としても「都」が含まれていますので、エラーになってしまいます。

前回のコードの
If Target Like "*都" Or Target Like "*府" Or Target Like "*県" Then

の行を

If Target Like "東京都" Or Target Like "*府" Or Target Like "*県" Then

に訂正してください。

検証せずに投稿して失礼しました。m(__)m
    • good
    • 0
この回答へのお礼

2度の回答ありがとうございます。
「京都」……気づきませんでしたf(@_@;)
「*都」としても、「最終文字が"都"の場合」という意味にはならないんですね。

解りやすい回答をありがとうございました。

お礼日時:2011/04/26 21:11

>京都



なるほど,気付きませんでした。

例えばA1セルについて
入力規則の数式で
=ISERROR(FIND("都",MID(A1,3,9)))*ISERROR(FIND("府",A1))*ISERROR(FIND("県",A1))
と設定してみます。

若しくは都のNGは東京都しかないのですから,これに(これらに)限って
=(A1<>"東京都")*(MID(A1,3,1)<>"府")*ISERROR(FIND("県",A1))
などのようにチェックする手でも良いですね。



#ご存じと思いますが念のため,入力規則のエラーメッセージタブで何故NGなのか理由を記入しておき,次からは皆さんも理解して気をつけて入力してくれる事を期待しましょう。
    • good
    • 1
この回答へのお礼

「京都」、実は私も気づいていませんでした。
(住所データを扱う上で、3文字の「鹿児島」「神奈川」「和歌山」よりも厄介な県名……)
わかりやすく説明していただけて助かります。


>入力規則のエラーメッセージタブで何故NGなのか理由を記入しておき,次からは皆さんも理解して気をつけて入力してくれる事を期待しましょう。

そうなんですよね……。気をつけてくれればいいのですが、みんな自分勝手で困ったものです。
でもエラーメッセージが都度出てくればさすがに気をつけざるを得ないと思うので、今後に期待します。

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

お礼日時:2011/04/26 21:18

こんばんは!


すでに回答は出ていますので、参考程度で・・・
VBAでの一例です

画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてデータを入力してみてください。

尚、都道府県名はA列・会社名はB列に入力する場合のコードにしています。
もし他の列であればコード内の列番号(Target.Column)の部分の数値を適当に変更してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Target.Column = 1 And Selection.Count = 1 Then
If Target Like "*都" Or Target Like "*府" Or Target Like "*県" Then
MsgBox "「都」「府」「県」は入力しないでください。", vbExclamation
Target.Clear
Target.Select
End If
End If
If Target.Column = 2 And Selection.Count = 1 Then
If Target Like "株式会社*" Then
MsgBox "「株式会社・・・」の場合は、" & vbCrLf & "「カ)と入力してください。", _
vbExclamation
Target.Clear
Target.Select
ElseIf Target Like "*株式会社" Then
MsgBox "「・・・株式会社」の場合は、" & vbCrLf & "(カ」と入力してください。", _
vbExclamation
Target.Clear
Target.Select
End If
End If
End Sub 'この行まで

こんな感じではどうでしょうか?m(__)m
    • good
    • 0

例えばA1セルについて


入力規則の数式で
=ISERROR(FIND("都",A1))*ISERROR(FIND("府",A1))*ISERROR(FIND("県",A1))
と設定しておくと,都府県を含んではいけないと制限できます。

COUNTIFなどを使っても,同様にして組み立てる事が出来ます。
    • good
    • 2

都道府県を入力する列の隣にプルダウンで都道府県を選択させる列を作ったらどうでしょう?ちなみに北海道の道は大丈夫なんですか?株式会社の件も、会社名を入力するセルの前に前株、後株、(有)等のプルダウン入力列を設ければ良いのではないでしょうか。

後は、csv変換の前に文字列検索でチェックすればほとんどのミスが防げると思います。
    • good
    • 0
この回答へのお礼

北海道だけは「道」がついたままでOKにしています。(おそらく「東京都」を「東京」と言っても通じるけれど、「北海道」を「北海」と言っても通じないからではないかと)

会社名の両隣にプルダウンで「(カ」などを付けると、会社名と「(カ」でセルを2つ使うことになり、最終的にデータ処理を行う時におかしくなってしまうため不可でした。
セルの結合をすればいいのでしょうが、データ数が膨大なため、手作業で1件ずつセルの結合をしていくのは大変で……。
他のシートやセルに「=a1&a2&a3」
(a1には「カ)」などのプルダウン、a2には「○○物産」などの社名、a3には「(カ」などのプルダウン)
として、フルネームで表示しても、やはり見かけ上での回避でしかないので、肝心のデータ処理でエラー……。

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

お礼日時:2011/04/26 21:08

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「仲良しであること」を表す漢字1文字

タイトル通り、「仲良しであること」を1文字で表せる漢字を探しています。この場合の「仲良し」は男女間なのですが、「恋人同士として仲良し」なのではなく「友達として、チームとして仲良し」を意味します。ちなみにこの漢字1文字は、オリジナルTシャツのデザインにする予定です。

自分なりに考えてみると「和」くらいしか思いつかないのですが、それではありきたりなのでもう少しひねった漢字にしたいと思っています。他に「懇ろ」も思いつきましたが(「ろ」は入れません)、これだと「友達として仲良し」ではなくなってしまうなぁ、と思いました。

何かいい漢字がありましたら、あるいは意味から漢字を調べられるようなサイトがありましたら、ぜひ教えてください。よろしくお願いします。

Aベストアンサー

・藹(和気藹々)

・欒(団欒)

・間を○で囲って「仲間」をイメージ

・良を○で囲って「仲が良い」をイメージ

QExcel:列中に特定の文字列を表示するセルが出たらBeep音を鳴らす

商品の品番の確認作業にエクセルを使っています。
作業の効率化にエクセルVBAを使いたいのですが、うまくいきません。

具体的な使用目的は以下の通りです。
 納品された商品には製造メーカーのバーコードがついています。それをエクセルに読み込んで予定通りの商品であるか確認作業を行います。
 まず、エクセルシートのA列にメーカーコードを入力しておきます、B列のセルをアクティブにした状態でメーカーのバーコードを読み取ります。するとセルにメーカーコードが自動入力されます。この文字列がA列の文字列と一致した場合にはC列のセルにOKの文字が出るように設定しています。コードが一致しない場合はNGが出ます。
 現在はOKかNGかを目で確認しているのですが、商品数が多いので、NGの場合にBeep音が出るようになっていれば作業が早くなります。

 過去の質問例を調べて、VBAのAMI関数を使うとBeep音を鳴らせることはわかりました。たとえば、セルC1にNGと表示された場合にBeep音を鳴らす、というところまではできたのですが、列CのいずれかのセルにNGと表示された場合にBeep音を鳴らす、という設定ができません。

 わかる方アドバイスお願いします。

 ちなみに、セルC1にNGと表示された場合にBeep音を鳴らすには以下のように設定しました。

標準モジュール
Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
シートのモジュール
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C1") = "NG" Then
Call Beep(2000, 500)
End If
End Sub

商品の品番の確認作業にエクセルを使っています。
作業の効率化にエクセルVBAを使いたいのですが、うまくいきません。

具体的な使用目的は以下の通りです。
 納品された商品には製造メーカーのバーコードがついています。それをエクセルに読み込んで予定通りの商品であるか確認作業を行います。
 まず、エクセルシートのA列にメーカーコードを入力しておきます、B列のセルをアクティブにした状態でメーカーのバーコードを読み取ります。するとセルにメーカーコードが自動入力されます。この文字列がA列の...続きを読む

Aベストアンサー

こんにちは。

>VBAのAMI関数を使うとBeep音を鳴らせる 
Win32API関数です。

別に、Win32API関数を使わなくても、単に、組み込み関数のBeep だけでも良いと思います。

本来は、NGと出てくるということは、データがインポートされるのですから、それを監視したほうが早いのです。Excelには、専用コマンドもあります。しかし、それは、古いメソッドなので、監視できるかどうかは分かりません。私の知っている範囲では、半分ぐらいは成功していません。

> Worksheet_Change(ByVal Target As Range)

今のところ、バーコードの出力で、Change イベントが、発生するか分かりません。Microsoft の古いサポートでは、この方法が書いてありましたが、DDEやOLEでは、反応しなかったような気がします。Change イベントで反応するのでしたら、以下のように、の入力列の Target.Value を判定に使えばよいです。

私のコンセプトは、NGは一つとは限らない、という前提で作られています。NGという表示を置いたまま、次に移って検査しても、可能なようにできています。

もし、ひとつだけを探すなら、Match関数や、CountIf 関数自体を、マクロの中に使用しても良いと思います。


注意:以下の二つのマクロは、二者択一ですから、必ず、片方だけにしてください。
'-------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
  If StrConv(Target.Value, vbUpperCase) Like "NG*" Then
    Call Beep(2000, 500)
  End If
End Sub

'=========================================

上記のイベント・ドリブン型のマクロでは、反応がない場合には、このようにします。

'-------------------------------------------

'標準モジュール
'Win32API関数の下に、

Public gCnt As Long 'と入れて、

'-------------------------------------------

#1さんの回答のように、該当するシートの E1 のセルに、=COUNTIF(C:C,"NG") と入れます。
そしてシートモジュールに以下のように貼りつけます。
'-------------------------------------------

Private Sub Worksheet_Calculate()
  'セル"E1" に =COUNTIF(C:C,"NG") という数式が入っていること
  Dim iCnt As Long
  iCnt = Range("E1").Value
  If iCnt > gCnt Then
    Call Beep(2000, 500)
  End If
  gCnt = iCnt
End Sub

'----------------------------------------

なお、二番目の場合は、ブックを開いて、機器を使用した時に、最初の一回目に抜けが発生するかもしれません。

こんにちは。

>VBAのAMI関数を使うとBeep音を鳴らせる 
Win32API関数です。

別に、Win32API関数を使わなくても、単に、組み込み関数のBeep だけでも良いと思います。

本来は、NGと出てくるということは、データがインポートされるのですから、それを監視したほうが早いのです。Excelには、専用コマンドもあります。しかし、それは、古いメソッドなので、監視できるかどうかは分かりません。私の知っている範囲では、半分ぐらいは成功していません。

> Worksheet_Change(ByVal Target As Range)

...続きを読む

Q漢字3文字の名前

もうすぐ女の子を出産予定です。
漢字3文字の名前を考え中ですが、3文字の名前って、書くときに長すぎたりバランスが取りにくかったりするものでしょうか。
ちなみに苗字は漢字2文字です。
私自身は漢字2文字の名前なので良くわからなくて・・・。
ご自身のお名前が漢字3文字の方、お子さんのお名前が漢字3文字の方、よければコメントをお願いします♪

Aベストアンサー

私自身が三文字です。

苗字や、三つの漢字の画数にもよりますが、
一般的に三文字の漢字で特に不都合を感じたことはありません。
バランスもとりにくいと思ったことはないです。

ただ子供の頃から、もし将来結婚して苗字が変わるなら、
読みが三文字で漢字も三文字(例えば佐々木さんとか)の人とは
結婚したくないな~と、思っていました。苗字も名前もすべて一文字
ずつ書くのは、何となくですが、当て字というか、
ヨロシクを夜露四苦と書くようなイメージがあって・・・
(完全に主観的な感想です^^;)

以外に便利だと思うのは、たくさんの名前の中から自分の
名前を探さなければならないような場面(学生時代等はよく
ありました。名簿とか。)で、三文字の名前って、
すごく探しやすくて良かったです(笑)。
二文字の子が多い中で、三文字が並ぶとぱっと目が行きますから。

Q【エクセルで】ゼロを入力すると表示されない→数字を表示させるには?

エクセルについて教えてください。
セルに数字を入力した時に,1以上だとその数字が表示されるのですが
0の時は何も表示されません。
0の時も「0」と表示させたいのですが,どうすれば良いのでしょうか?
(他の人が以前に使っていた表をそのまま引き継いで使っているため
分からなくて困ってます・・・)

Aベストアンサー

N01、No2の方の回答どおりやっても上手くいかない場合は
0表示しないように表示形式を変えてある可能性があります。
その場合は、0表示させたいセルを選択してから、
[書式]-[セル]-[表示形式]-[ユーザー定義]の順に
選び、種類(T)の下の入力欄に“#,##0”のように入力して
OKをクリックします。

ちなみに、#は0を表示しないようにする記号です。

Qこの文字(アート・デザイン)の名称を教えてください。

5年ほど前、軽井沢のプリンスショッピングプラザ(アウトレット)で学生風の方が露天商のような形で商売をしていました。商品は客の名前をデザインされたアートな文字で書いてくれるというものでした。情報が少なくて申し訳ないのですが、知っている方がおりましたら教えてください。
【その文字について】
・幅5cm程度のスポンジのようなものに原色系の顔料を染みこませて、虹のような色遣いで書く。
・基本的にはアルファベットであるが、漢字でも書いてくれるようだった。
・文字の一つ一つに植物や鳥が描かれている(熱帯系のデザインに見える)。
・1枚1000円ぐらいで書いてくれた。
・とてもおめでたい(幸運を呼ぶ)文字らしい。

参考になるサイト等ありましたらご紹介ください。よろしくお願いいたします。

Aベストアンサー

No.1の回答者です。

違かったですか…。他には知らないですね。すみません。

今回は、

>当時「花文字」以外の呼び名を聞いたような気がしているのですが・・・

の補足回答です。質問の回答ではないので、あしからず。

「花文字」という呼び名のほかには、
「花鳥文字」「吉祥花文字」「開運風水花文字」「花鳥書法」「虹書法」などあるようです。(種類が違うのかもしれませんが…)


そういえば、

>学生風の方が露天商のような形で商売をしていました

ということなのですが、
その学生風の人のオリジナルという可能性もあるのでは?とも思ったんですが。


最後に、ほかに「花文字」に関するサイトを見つけたので紹介しておきます。
もはや関係のないものなので、参考という程度に。

http://www.asia-jps.com/hana01.html

http://kotobukimiyuki.at.infoseek.co.jp/miyukiss/hanamoji.jpg

http://www.d-word.jp/pdt_related1/

http://www.giwado.com/order/kachomoji.html

No.1の回答者です。

違かったですか…。他には知らないですね。すみません。

今回は、

>当時「花文字」以外の呼び名を聞いたような気がしているのですが・・・

の補足回答です。質問の回答ではないので、あしからず。

「花文字」という呼び名のほかには、
「花鳥文字」「吉祥花文字」「開運風水花文字」「花鳥書法」「虹書法」などあるようです。(種類が違うのかもしれませんが…)


そういえば、

>学生風の方が露天商のような形で商売をしていました

ということなのですが、
その学...続きを読む

Q特定の文字列が入力されると、その文字列の列すべてを別のシートに抽出する

特定の文字列が入力されると、その文字列の列すべてを別のシートに抽出する方法について

お世話になります。
エクセルについてのご相談なのですが、

「シート1に入力された内容を、表の一番左の番号を元に別シートに引用したい」

というご相談です。

条件として、

・入力される内容は複数の項目
・入力されるデータは文字列も数値もある
・シート1は任意の項目でソートをすることもあるが、一番左の番号も同様にソートされるので、データと番号がずれることはない

という前提です。
サンプル画像にイメージデータを添付致しました。
このサンプルですと、A4~A12の数字が「左端の番号」になり、別シートでは「左端の番号」を元にB~Fのデータを引用するように作成をしたいと思っています。

説明がわかりにくいかとは思いますが、ご助力頂ければ助かります。
よろしくおねがいいたします。

Aベストアンサー

Sheet2(添付図)において

1.セル B2 に式 =VLOOKUP($A2,Sheet1!$A$4:$F$12,COLUMN(B2),FALSE)&"" を
  入力して、此れを右方にズズーッとドラッグ&ペースト
2.セル D2 の式を編集して次式に変更し、此れを右隣にドラッグ&ペースト
   =IF($B2="","",VLOOKUP($A2,Sheet1!$A$4:$F$12,COLUMN(D2),FALSE))
3.範囲 B2:F2 を下方にズズーッとドラッグ&ペースト

Q漢字の他に、漢字のように何万字もあるような複雑な文字ってあるんでしょう

漢字の他に、漢字のように何万字もあるような複雑な文字ってあるんでしょうか?

やっぱり、漢字が世界で最も文字数の多い文字なんでしょうか?

Aベストアンサー

 文字には大きく分けて二種類あります。音(意味がない)によるものと語によるものです。世界の文字を全部勉強した訳ではありませんが、文字組織からだいたいの見当はつきます。

(1)音をあらわすもの。
  音素文字、いわゆるアルファベットはその例。母音を表す文字と子音を表す文字で総数50以下。

  音節文字、日本語の仮名はその例。総数は多くても150以下

(2)語を表すもの。表語文字、漢字はその例。1994年の『中華字海』では、85,568字。日本の常用でも2,000字程度。

>>やっぱり、漢字が世界で最も文字数の多い文字なんでしょうか?

 多分そうだろうと思います。

http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97

Q特定のエクセルを開くとエラー表示が出て開けない

エクセル2000で特定のファイルを開くと「問題が発生しました・・・エラーを送信しますか?」と表示が出て開けません。
ほかのエクセルファイルは開けるので、エクセル自体が壊れているのではなく、
開けないファイルのみが壊れているはずです。
このファイルを開けるようにするにはどうしたら良いですか?
別バージョン(2002以上)で開いてみて自動修復機能からデータは取り出せましたが、常に別バージョンを使えるわけでは有りません。
エクセル2002のように自動修復機能も無いので困っています。

XP SP3 Home

Aベストアンサー

以下の情報にある方法で開くことはできませんか。

破損して開けなくなった Excel ファイルの内容を Excel 2000 で参照する方法
http://support.microsoft.com/kb/879783/ja
 

Qロゴや文字のデザイン。

漢字やひらがな、英語などデザイン風に少しデフォルメして書きたいのですがどのようにかけばかっこよく見えるでしょうか。
よく、路上の壁面に書いてあるような文字の書き方(特徴)などわかるかたおしえてください。
文字がなんて書いてあるかが少しわかんないくらいにしたいのですが。
ロゴのようなものでも良いです。
最近の10代20代くらいの人が好きそうな感じで…
よろしくおねがいします。

Aベストアンサー

グラフィティ(らくがきと言う意味で)と呼ばれる文字ですね。かっこ良く、なんて書いてあるかがわかんないくらいの文字が書けるように、みんなひたすら紙に書いて練習しているのだと思います。

当たり前ですが、シャッターやコンクリの塀、人の迷惑になる場所に書くのは犯罪ですので、そういった場所に書くのは絶対にやめましょう。

こんなところとかご参考に
http://www.11-d.nu/

以下のサイトからは、PLAY→好きな英字入力で作れます。

参考URL:http://www.mindgem.nu/graffiti.html

Qエクセルで1行に1データ以上入力されたらエラー表示

A1からG1の行で7つのセルがありますが、
その行で1データ以上入れたらエラー表示させることは出来ますか?

例えば
A1にデータを入れたらB1・C1・D1・E1・F1・G1にはデータは入れられない。
D1にデータを入れたらA1・B1・C1・E1・F1・G1にはデータは入れられない。
という感じです。

どうぞよろしくお願いします。

Aベストアンサー

A1からG1を選択後、入力規則のユーザー定義で

=COUNTA($A1:$G1)=1

→OK

で如何でしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング