質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

852閲覧

エクセルの入力規則のユーザー設定にて、複数条件(文字数制限と指定文字列)を設定したい。

Risney

総合スコア148

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2023/05/22 03:06

編集2023/05/23 09:09

実現したいこと

入力規則で以下の場合にエラーダイアログが表示されるように設定したい
・文字数が6文字以下
・指定の記号が入力されている

前提

C6セルに値を入力し、
条件にあてはまればエラーメッセージを表示する。

発生している問題

以下の数式では、文字数が0以外の時はすべてエラーダイアログが表示されてしまいます。

Excel

1=NOT(OR((LEN(C6)<6),COUNTIF(C6,"*:*"),COUNTIF(C6,"*\*"),COUNTIF(C6,"*¥*"),COUNTIF(C6,"*?*"),COUNTIF(C6,"*?*"),COUNTIF(C6,"*[*"),COUNTIF(C6,"*]*"),COUNTIF(C6,"*/*"),COUNTIF(C6,"*~**"),COUNTIF(C6,"***"))) 2

試したこと

・不等号記号を変更して確認してみましたが発生している問題は変わらず、、
・文字数指定の部分を省いた場合、指定文字列を入力時にエラーダイアログが表示されるので、文字数制限の数式以外は問題ないと思います。
・以下の数式にしたら文字数は6文字以上でないとダイアログ表示がされましたが、?などの文字が入っていてもダイアログが表示されなくなりました。

Excel

1=OR((LEN(C6)>=6),NOT(OR(COUNTIF(C6,"*:*"),COUNTIF(C6,"*\*"),COUNTIF(C6,"*¥*"),COUNTIF(C6,"*?*"),COUNTIF(C6,"*?*"),COUNTIF(C6,"*[*"),COUNTIF(C6,"*]*"),COUNTIF(C6,"*/*"),COUNTIF(C6,"*~**"),COUNTIF(C6,"***"))))

備考

理想はvbaで設定することでしたが、
以下をサイトを参考にAddメソッドで試したが上手くいかなかったので、
入力規則でやってみたものの詰まっている状態です。
https://jizilog.com/vba-validation

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bebebe_

2023/05/23 08:15

「COUNTIF(C6,"*?*")」が半角の?をカウントしたいのだと思いますがワイルドカードになっていると思われます。
Risney

2023/05/23 09:12 編集

すみません、コメントの意味を理解できていないので確認させていただきたいのですが、 「半角全角のハテナ文字が文字列のどこかにはいっていた場合にエラーダイアログを表示する」 という期待値から外れる、ということでしょうか。
bebebe_

2023/05/23 23:45

「?」は他の検索条件で使われている「*」と似たような性能になります。 半角の「?」を検知したいなら「COUNTIF(C6,"*~?*")」とすればいけるでしょう。 詳しくは「Excel ワイルドカード」とかで調べれば解説されていると思います。
Risney

2023/05/26 01:24

チルダでワイルドカードになるのを回避しないといけないということですね、ありあとうございます!
Risney

2023/05/26 01:41

bebebe_様のおかげで解決しました!ありがとうございます。 原因は半角の「?」がワイルドカードと同じ動きをしてしまっていることだったので、 ~(チルダ)を使って半角ハテナを文字列と判定すると正常に動作しました! ベストアンサーとさせて頂きたいので、回答欄に簡単に記入いただけますと幸いです。 ```EXCEL =AND((LEN(C6)>=6),NOT(OR(COUNTIF(C6,"*:*"),COUNTIF(C6,"*\*"),COUNTIF(C6,"*¥*"),COUNTIF(C6,"*~?*"),COUNTIF(C6,"*?*"),COUNTIF(C6,"*[*"),COUNTIF(C6,"*]*"),COUNTIF(C6,"*/*"),COUNTIF(C6,"*~**"),COUNTIF(C6,"***")))) ```
guest

回答1

0

ベストアンサー

「?」もワイルドカードになるので「~」をつけてエスケープしましょう。

COUNTIF(C6,"*~?*")

投稿2023/05/26 04:45

bebebe_

総合スコア520

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Risney

2023/05/27 05:22

回答ありがとうございます。 おかげ様で解決いたしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問