[[20231031202612]] 『入力規則を使用して文字列の間にスペースと文字数』(おちょきん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『入力規則を使用して文字列の間にスペースと文字数制限を設けたい』(おちょきん)

エクセルの入力規則を使用して

やりたいこと1.
セルのなかに、文字と文字の間にスペースが含まれる事(姓名ほ間のスペースの位置付け)をチェックしたく

やりたいこと2.
1セルの最大文字数が間のスペースを含み20文字以内であることをチェックしたく

入力規則でOR条件を使いながら、スペースを見つけるfind関数を使用したりしているのですが、
全くうまくいかず、どう式を組めばいいのかご教示いだきたく、投稿しました。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 半角と全角のスペースが連なっているものを頭に浮かべてみます。
 それを「SS」と表現することにします。

 「SS山田SS太郎SS」と言う文字が入力されたら、どう判定すればいいですか?

 姓名の間にスペースが含まれており、20文字以下にはなっていますが、OKですか?

(半平太) 2023/10/31(火) 20:49:34


 追加の確認です。
 一つの半角ないし全角のスペースがあればOKですか? 
 それが姓と名の間であるかどうかは問わない(できないと思うので。東海林太郎問題)。
 2個以上あったら不可ですか。半角2個なんてありそうですが。

(xyz) 2023/10/31(火) 21:00:55


丁寧な確認ありがとうございます。

s1S1山田s2S2太郎s3S3の例でいいますと、
s2S2を救って、他のケースはエラーにしたいなと思っていました。
そして、間にあるs2とS2のスペースの個数は1つ(以上)あれば,問わないつもりでした。
2つあってもしょうがないかな、と。
あまりにも多くある場合は、最大文字でチェックの方でエラーがかかり、気づけると考えておりました。
(おちょきん) 2023/10/31(火) 21:43:15


 最終的な、入力文字列が満たすべき条件を箇条書きにしてもらえますか?
(問わないつもりでした、とか、まだ両方に解釈できるような曖昧な気がするのです。)

 1. 全文字数は20文字以下。
 2, 冒頭に半角もしくは全角スペースがないこと。
 3. 末尾に半角もしくは全角スペースがないこと。
 4. ここを明確に書いて下さい。

 >あまりにも多くある場合は、最大文字でチェックの方でエラーがかかり、気づけると考えておりました。
 氏名は標準で4文字です。20文字との間にはかなり余裕がありますけど? 

 # 私のお役目はここまでとさせてください。
(xyz) 2023/10/31(火) 23:00:28

  =LET(s,ASC(A1),c,LEN(s)-LEN(SUBSTITUTE(s," ","")),AND(LEFT(s)<>" ",RIGHT(s)<>" ",0<c,c<3,LEN(A1)<21))

(半平太) 2023/11/01(水) 08:18:43


半平太さんありがとうございます。
LET関数を使用したことがなく、全く発想にありませんでした。勉強してみます。

本当にありがとうございます
(おちょきん) 2023/11/01(水) 09:24:59


 Private Sub Worksheet_Change(ByVal Target As Range)
'    Dim s As String
'    Dim msg As String
'
'    If Target.CountLarge > 1 Then Exit Sub
'    If Target.Column <> 2 Then Exit Sub
'    If Target.Row < 3 Then Exit Sub
'
'    s = StrConv(WorksheetFunction.Trim(Target.Value), vbWide)
'    If Len(s) = 0 Then Exit Sub
'
'    If UBound(Split(s, " ")) <> 1 Then
'        msg = "姓と名の間にスペースがありますか"
'    ElseIf Len(s) > 20 Then
'        msg = "20文字以下にしてください"
'    Else
'        Application.EnableEvents = False
'        Target.Value = s
'        Application.EnableEvents = True
'        Exit Sub
'    End If
'
'    MsgBox msg
'    Target.Select
'    CreateObject("WScript.Shell").SendKeys "{F2}"
'
' End Sub
(マナ) 2023/11/01(水) 12:20:13

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.