セルを半角英数文字以外受け付けないようにできますか?

セル(列や行)を半角指定というか、半角英数文字以外受け付けないように
できるでしょうか?

1 Like

仮にA1セルを対象とした場合
[データ]-[入力規則]
入力値の種類を ユーザ定義 を選び
下の式の欄に NOT(ISERROR(REGEX(A1,"^[0-9a-zA-Z]*$",“g”)))
とします

自分以外の人が見るものなら
入力時メッセージやエラーメッセージを設定した方が親切かもしれません

2 Likes

sabr0さん
ありがとうございます。


エラーになってしまいました。
WS001937
入力値の蘭をみますと、なぜか、わからないのですが
最後が)))だったのに見返してみると))))))になってしまいます。
WS001940
これが原因なのか?わからないのですが、何度繰り返しても
同じ様になりました。

空白のセルを許可するを外してみたりしましたが、変わりませんでした。

すみません
"g"の前の,は2個でした

NOT(ISERROR(REGEX(A1,"^[0-9a-zA-Z]*$",,"g")))

カンマ2個で書いても1個になってしまう

2 Likes

門外漢の思いつきですが、もしかすると「,,"g"」なしに
NOT(ISERROR(REGEX(A1,"^[0-9a-zA-Z]*$")))
でも機能してくれないかしら…? これだと何か見落としがあるでしょうか?

2 Likes

JO3EMCさん

たしかに「,,"g"」なしでも同様に動作しますね
1つでも条件に合致しなければエラーになるので"g"である必要がなかったですね

2 Likes

よかった、間違ってなかったw。
やー、入力規則もREGEXも使ったことなかったですが、色々出来るものなのですねぇ…。

1 Like

sabr0さん
すみません。
ありがとうございます。

NOT(ISERROR(REGEX(A1,"^[0-9a-zA-Z]*$",“g”)))
で出来ました。
ありがとうございました。

1 Like

JO3EMCさん
ありがとうございます。
"g"があってもなくてもOKでしたが、"g"ってどういうときに
使うものなのでしょうか。
説明が簡単なら、もしよければおしえてください。
ありがとうございました。

REGEX関数を文字列置換目的で使う場合に効いてくるオプションのようです。検索正規表現が文字列中で複数見つかるような場合に、全て置換することを指定する意味を持ちます(「,"g"」を指定しなければ、最初にヒットしたものだけが置換されます)。
今回は(最初から最後まで半角英数字だけで構成されている文字列としてヒットするかどうかを)検索チェックしているだけなので、文字列置換で意味を持つ第3引数以降は無用と思います。

より詳しくは、オフトピックですし、私ごときがごちゃごちゃ説明するより、ヘルプを参照いただく方がいいのかなと思います。未翻訳ですがw、使用例を見るだけでも機能は理解いただけるのではないかと。
LibreOffice ヘルプ 「REGEX」

1 Like

ありがとうございます。
URLを開いてみました。
外国語だったので、Google翻訳でURLごと翻訳しようとしたら
できなかったので、文字列をコピペしてみました。
ありがとうございました。
自分で調べるにしても、英語は全くダメで、日本語で説明してる
サイトをぐぐったりはするのだけど、やっぱり答えがみつからなくてここで質問しました。

1 Like

難しい方法はわからないけど、簡単な方法は少々手間がかかりますが
リストを使うのもありかと思う。
WS001947

種類をリストにして、選択リストを表示をオフにする。
0~9、A~Z.、a~zまでの64種類をリストにする。

3 Likes

tarou7さん
ありがとうございます。

試しにやってみましたら、できました。
(試しなので0から9とABCabcくらいで試してみました。
このリストって、文字列でもできるんですね。
ありがとうございました。


loc2
リストの内容が多い場合は
別シートにリスト内容を入力しておいてセル範囲に名前を付けて
入力規則のセル範囲で名前を指定もしくはセル範囲を選ぶ手もありますね

3 Likes

ありがとうございます。
その方法は便利ですね。
助かりました。