これ何て呼びますか

セル内の文字数を全角4文字以内とし、5文字以上入力しても
表示は頭からの4文字のみが表示されるようにしたいんです。
LENB関数ではエラーメッセージとしか表示去れないのでだめです。
文字列を入力し、変換→ENTERで自動的に頭から4文字のみ表示する
方法を教えてください。
よろしくお願いします。

A 回答 (3件)

こんばんは!


VBAになってしまいますが、一例です。
全角で4文字・半角で8文字まで表示としています。
A列にデータ入力するコードにしています。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてA列にデータ入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim k As Long, str As String, buf As String
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count <> 1 Then Exit Sub
str = Target
If LenB(StrConv(str, vbFromUnicode)) > 8 Then
Application.EnableEvents = False
For k = 1 To Len(str)
buf = buf & Mid(str, k, 1)
If LenB(StrConv(buf, vbFromUnicode)) >= 8 Then
Exit For
End If
Next k
Target = buf
Application.EnableEvents = True
End If
End Sub 'この行まで

※ 全角と半角が混在する場合、
半角文字が奇数の時は1文字多く表示される場合があります。m(_ _)m
    • good
    • 0

右隣りのセルに=""


4文字分までしか表示しないよう列幅を狭くするとか


=LEFT(A1,LOOKUP(8,LENB(LEFT(A1,{4,5,6,7,8})),{4,5,6,7,8}))
で半角7文字か8文字分、抜き出せます
    • good
    • 0

別セルに入力して関数で抜き取るか、でなければVBAになるかと思います。


入力セルをJIS関数で全角にしてそこからLEFT関数で4文字抜き出すとか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!