プロが教えるわが家の防犯対策術!

エクセル2007を使用しています。
500文字の文字列の全ての文字間にスペースを入れる方法はあるでしょうか?
どうぞよろしくお願いいたします。

A 回答 (2件)

マクロで直接置き換えてしまうことも可能ですが、そうすると元に戻すのが大変なので、ユーザ定義関数にします。



まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。

ワークシート画面に戻って
 =SpAdd(A1)
のように式を入れると、A1セルの文字列の各文字間に半角スペースを入れた文字列を表示します。

Function SpAdd(ByVal trg As Range) As String
Dim idx As Integer
  If Len(trg.Cells(1, 1).Text) > 1 Then
    For idx = 1 To Len(trg.Cells(1, 1).Text)
      SpAdd = SpAdd & Mid(trg.Cells(1, 1).Text, idx, 1) & " "
    Next idx
    SpAdd = Left(SpAdd, Len(SpAdd) - 1)
  Else
    SpAdd = trg.Cells(1, 1).Text
  End If
End Function

最終的に文字列として欲しいなら、式の表示結果をコピーして、別のセルに「編集」→「形式を選択して貼り付ける」→「値」で貼り付けてください
    • good
    • 1
この回答へのお礼

ありがとうございました!
解決いたしました。感謝いたします。

お礼日時:2007/12/06 17:26

「500文字の文字列」がどこに幾つあるかによって


アプローチも変わってくると思いますが…。

例えば、A1セルに「500文字(以内)の文字列」があるとして、

A2:=LEFT(A1,1)
A3:=A2&IF(ROW()-2>=LEN(A$1),""," "&MID(A$1,ROW()-1,1))
としてA3セルを下方にフィル。

A501セルに表示される文字列が求める文字列です。
    • good
    • 1
この回答へのお礼

これでも出来ますね。すごい!ありがとうございました。

お礼日時:2007/12/07 11:56

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