カンパ〜イ!←最初の1杯目、なに頼む?

エクセル2007を使用していますが、現在セル内に60~100程の文字が入っております。
それを50文字に制限し、セル内の50以上の文字を消去したいのです。

例えば
60文字の入っているセルを
50文字制限にして、その差の文字の10文字を自動で消去したいのですが
どうすればいいでしょうか?

A 回答 (2件)

こんばんは!



データはA列の1行目からあり、B列に表示させるとします。
半角・全角関係なしに50文字限定!というコトであれば
B1セルに
=MID(A1,1,50)
という数式を入れオートフィルで下へコピー!

全角で50文字限定、半角は2文字で1文字扱い!としたい場合は
VBAになってしまいますが、一例です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, k As Long, str As String
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If LenB(StrConv(Cells(i, "A"), vbFromUnicode)) > 100 Then
For k = 1 To Len(Cells(i, "A"))
str = str & Mid(Cells(i, "A"), k, 1)
If LenB(StrConv(str, vbFromUnicode)) >= 100 Then
Exit For
End If
Next k
Cells(i, "B") = str
str = ""
Else
Cells(i, "B") = Cells(i, "A")
End If
Next i
End Sub 'この行まで

※ 半角文字は2文字で1文字扱いにしていますので、
半角文字が奇数の場合1文字多く表示されると思います。

※ マクロの場合はA列そのもののデータを消去することも可能です。m(_ _)m
    • good
    • 1

A1に60文字の文字が入ってるとして、B1に、



B1:=LEFT(A1, 50)

で左側から50文字抜き出せます。
抜き出した50文字をコピー、形式を指定して貼り付けの文字列として貼り付けなんかでA1に上書きするとか。
    • good
    • 3

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


おすすめ情報