「みんな教えて! 選手権!!」開催のお知らせ

エクセルのデータでたとえば

「あいうえお」

と、入力されているデータを

「あ い う え お」

というように文字と文字の間に全角スペースを入れたいのですが、関数などはあるのでしょうか。

A 回答 (5件)

関数だけで実現できるかどうかは分かりません。

。。
私ならユーザー定義関数を作ってしまいます。
#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)
などととすれば?
    • good
    • 0

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)
    • good
    • 0

データの使途が不明なので他の回答者と変わらないのですが。


入力されるデータの最高桁数が決まっているのなら下記の方法もあります。
例: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&" ")

ご確認ください。
    • good
    • 0

こんにちは!


無理やり関数でやるのであれば、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
    • good
    • 1

いいえ。

ありません。


敢えて言えば
=REPLACE(REPLACE(REPLACE(REPLACE(A1,5,0," "),4,0," "),3,0," "),2,0," ")
みたいに1文字ずつ挟んでいくような格好になりますが、とても現実的じゃありません。
手で書き足していった方が遥かに簡単ですが、セルの書式設定の配置の横位置で均等割り付けを設定するなど、別の手を考えます。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報