質問: エクセルの文字制限からの文字消去は? エクセル2007を使用していますが、現在セル内に60~100程の文字が入っております。 それを50文字に制限し、セル内の50以上の文字を消去したいのです。 例えば 60文字の入っているセルを 50文字制限にして、その差の文字の10文字を自動で消去したいのですが どうすればいいでしょうか?
回答: こんばんは! データは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