- ベストアンサー
エクセルで文字数制限まで空白を入れる関数
仕事にて、エクセルを使用しています。 とあるシステムにて、エクセルで入力した文字を読み込ませないといけないのですが 文字数が1つのセルにつき全角15文字(半角30文字)と決まっています。 例えば、【たこ焼き】という文字を入れたい場合、空白文字+たこ焼き=合計15文字にしたい場合、空白文字を合わせて全角15文字にできる方法を関数等使って できないでしょうか?数百件あるので、なんとかできる方法があれば、ご教授いただけたらと思います。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
何ですかそのクソのようなシステムは……。 選択しているセルを、ご指定の「全角空白+元の文字列」で15文字に整えます。 元々15文字以上入力されている場合は何もしません。 範囲選択には対応していませんし、選択セル対象だしとやや使いにくいですが、取り急ぎ。 Sub 十五文字() Dim α, β α = ActiveCell.Value If Len(α) > 14 Then End β = 15 - Len(α) α = String(β, " ") & α ActiveCell.Value = α End Sub
その他の回答 (4)
- kkkkkm
- ベストアンサー率66% (1719/2589)
選択範囲のセルを 半角スペース+元の文字列=半角30文字換算 に変換します。 Sub Example() Dim c As Range Dim strb As Long For Each c In Selection strb = LenB(StrConv(c.Value, vbFromUnicode)) If strb < 30 Then c.Value = String(30 - strb, " ") & c.Value End If Next End Sub
お礼
kkkkkm様 ありがとうございます!
- imogasi
- ベストアンサー率27% (4737/17069)
「たこ焼き」という文字が入っているセルを、仮にA1とします。A1に入る文字種が半角も混じることがあるのか、質問に書いてなくて、不十分と思います。 例えば、B1セルに =REPT(" ",15-LEN(A1))&A1 と入れてみて、不都合なケースが起こるか、補足すれば、正しい回答が出るでしょう。
お礼
imogashi様 ありがとうございます!
- msMike
- ベストアンサー率20% (364/1804)
=RIGHTB(REPT(" ",30)&A1,30)
お礼
msMike様 ありがとうございます!
- HohoPapa
- ベストアンサー率65% (455/693)
全角文字しか登場しない あるいは、半角文字も1文字と数えていいのであれば かつ、全角スペースを必要数埋めるのであれば =IFERROR(REPT(" ",15-LEN(A2)) & A2,A2) でもいいと思います。 それとも半角文字が登場する場合に 半角換算で30文字に揃えることを求めていますか? だとすると、 NHKテレビ の場合、半角、全角スペースをどのように埋めればいいのか 示してみてください。
お礼
HohoPapa様 ありがとうございます!
お礼
kon555 様 ご返答ありがとうございます。やってみます! ほんと、顧客の要望ですので、ダメダメなシステムです。