- ベストアンサー
セル中の文字チェック
教えて下さい。 マクロ初心者です。 あるセルに入力させたくない文字が複数あります。 (たとえば、半角の / や * などです。) 入力者がそのセルに入力している時、/が入力できない!というのがベストかと思うのですが、入力された後にセル中の文字列をチェックしエラーメッセージを表示出来れば大助かりです。 マクロ、関数どちらでも結構ですので対応方法を教えて下さい。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
moccosさんの#2のような式を入力規則に使えば良いのではないでしょうか? 入力規則で、[入力値の種類]を[ユーザー設定]にして、[数式]を =AND(ISERROR(FIND("/",A1,1)), ISERROR(FIND("*",A1,1))) (*A1は入力させるセルの番地) のようにすれば良いと思います。 [数式]がTRUEであれば、入力できるようになるので、 式を別のセルに書いておいてそれを参照しても良いのはないでしょうか。
その他の回答 (2)
- moccos
- ベストアンサー率43% (61/140)
#1です。複数の文字列の中からでしたら多少複雑になりますネ。 当方の理解不測で申し訳ありませんでした。 入力規則では出来ません(私には・・・・)。強引に行くならば、 1、他のセルに入力セルの内容を『FIND関数』で捜し出して数値化します。 2、複数入力されたくない文字がある場合は関数入力したセルをふやします。 3、SUM関数で合計をします。 4、IF関数で3項のセルの値が『0』でないとき任意のセルに『入力しなおして・・』 とか表示します。 5、入力するセルに「コメント表示機能」を利用して『半角の/、*は入力しないで下さい』 と記入します。 先ほどの続きです。F1のセルに =IF(OR($A$1="",ISERROR(FIND(E1,$A$1,1))),"",FIND(E1,$A$1,1)) と入力てF3までオートフィルします。 F4セルに =SUM(F1:F3) B1セルに =IF(F4<>0,"入力値が正しくありません","") 書式設定でフォントを太字とか赤色とかに変更する。 ふ~~ いずれにせよかなり強引でスッキリしませんね!識者の書込みを期待します。
- moccos
- ベストアンサー率43% (61/140)
マクロでも関数でも有りませんがデータの入力規制で如何でしょうか? [A1]のセルに入力すると仮定します。[E1]~[E3]セルに[/][*][?]とか入れて欲しくない文字を入力しておきます。多数ある場合は同様に置き換えてください。 メニューバーの[データ]→[データの入力規制]→[設定]タブ→[入力値の種類]を[ユーザー設定]→[数式]に[=AND(A1<>$E$1,A1<>$E$2,A1<>$E$3)]と入力して[OK]をクリックします。$E$1と絶対参照にしたのは他のセルに入力規制する事を考慮しただけで意味はありません。 入力やエラーにメッセージを書き込めますし日本語入力のオン・オフ等は適宜に設定してください。
補足
回答ありがとうございます。 説明不足で申し訳ありませんが、入力するセルは50文字程度の内容をフリーフォーマットで入力するようになっています。ですので、入力者は「あいうえお/かきくけこ」のように「/」を入力してくる可能性が大きいのですが、この時の「/」にも規制をかける事って可能なんですか?? マクロは少々特殊な知識になると思いますので、出来れば入力規制などで出来ればベストだと思います。(引継ぎ等を考慮して。)
お礼
出来ました。 関数&入力規制でこんなに便利になるとは。。。勉強になりました。ありがとうございます。