- ベストアンサー
エクセルの文字制限からの文字消去は?
エクセル2007を使用していますが、現在セル内に60~100程の文字が入っております。 それを50文字に制限し、セル内の50以上の文字を消去したいのです。 例えば 60文字の入っているセルを 50文字制限にして、その差の文字の10文字を自動で消去したいのですが どうすればいいでしょうか?
- みんなの回答 (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
その他の回答 (1)
- neKo_deux
- ベストアンサー率44% (5541/12319)
A1に60文字の文字が入ってるとして、B1に、 B1:=LEFT(A1, 50) で左側から50文字抜き出せます。 抜き出した50文字をコピー、形式を指定して貼り付けの文字列として貼り付けなんかでA1に上書きするとか。