[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『入力規則を使用して文字列の間にスペースと文字数制限を設けたい』(おちょきん)
エクセルの入力規則を使用して
やりたいこと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
本当にありがとうございます
(おちょきん) 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.