- 締切済み
エクセルの文字間スペースを入れる関数ありますか?
エクセルのデータでたとえば 「あいうえお」 と、入力されているデータを 「あ い う え お」 というように文字と文字の間に全角スペースを入れたいのですが、関数などはあるのでしょうか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
関数だけで実現できるかどうかは分かりません。。。 私ならユーザー定義関数を作ってしまいます。 #2さんのを少し変えれば実現できます。 でも、それだと芸がないと言われそうなので http://exvba.officehp.com/category/7342037-1.html を参考に操作してください。 下記を標準モジュールに Function spcChr(r As Range) As String Dim ss As String ss = String(Len(r.Value), "\") ss = Replace(ss, "\", "@ ") ss = Left(ss, Len(ss) - 1) spcChr = Format(r.Value, ss) End Function Excelのワークシートに戻って 適当なセルで一般の関数同様、 =spcchr(A1) などととすれば?
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルから下方にお示しのようなデータが並んでいるとして、例えば15文字までのデータに対応する、勿論それ以上でも対応できますがここではあくまでも例として示します。 D列から右の列を作業列とします。 D1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",A1) E1セルには次の式を入力してS1セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =MID(D1,1,(COLUMN(A1)-1)*2+1)&" "&MID(D1,COLUMN(A1)*2,100) お求めの空白のスペースの入った文字列をB列に表示させるとしてB1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",S1)
- はる のパパ(@van62097)
- ベストアンサー率20% (157/758)
データの使途が不明なので他の回答者と変わらないのですが。 入力されるデータの最高桁数が決まっているのなら下記の方法もあります。 例:D115のセルに最高15桁の文字が入力される場合。 変換用セルにお望みの文字がセットされます。 =MID(D115,1,1)&" "&MID(D115,2,1)&" "&MID(D115,3,1)&" "&MID(D115,4,1)&" "&MID(D115,5,1)&" "&MID(D115,6,1)&" "&MID(D115,7,1)&" "&MID(D115,8,1)&" "&MID(D115,9,1)&" "&MID(D115,10,1)&" "&MID(D115,11,1)&" "&MID(D115,12,1)&" "&MID(D115,13,1)&" "&MID(D115,14,1)&" "&MID(D115,15,1&" ") ご確認ください。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 無理やり関数でやるのであれば、No.1さんが回答されているような方法になると思います。 ただし、文字数が決まっていない場合は難しいでしょうね! そこでVBAになってしまいますが、一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) 尚、データはA1セル以降にあり、B列に表示するようにしています。 Sub Sample1() 'この行から Dim i As Long, k As Long, str As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To Len(Cells(i, 1)) str = str & Mid(Cells(i, 1), k, 1) & " " Next k Cells(i, 2) = Trim(str) str = "" Next i End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m
- keithin
- ベストアンサー率66% (5278/7941)
いいえ。ありません。 敢えて言えば =REPLACE(REPLACE(REPLACE(REPLACE(A1,5,0," "),4,0," "),3,0," "),2,0," ") みたいに1文字ずつ挟んでいくような格好になりますが、とても現実的じゃありません。 手で書き足していった方が遥かに簡単ですが、セルの書式設定の配置の横位置で均等割り付けを設定するなど、別の手を考えます。