[[20060803163351]] 『文字間にスペースを入れたい』(ヒロ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字間にスペースを入れたい』(ヒロ)

指定したすべてのセルの中の文字間にスペースを入れたいのですが、

一括で行う方法がありますか。

よろしくお願いします。

例  山本太郎 ⇒ 山 本 太 郎           


 マクロでやっつける方法です。
 Alt + F11を押して、挿入-->標準モジュールを選択。
 出てきた画面に下記コードを貼り付け閉じる。
 変換したい範囲を選択して、Alt + F8を押して、Hiroを選択、実行。
 (ROUGE)
'----
Sub Hiro()
    Dim C As Range, i As Long, txt As String
    For Each C In Selection
        txt = ""
        If Len(C.Text) Then
            For i = 1 To Len(C.Text)
                txt = txt & " " & Mid(C.Text, i, 1)
            Next
            C.Value = Trim(txt)
        End If
    Next
End Sub

 UDF
 1) Alt + F11 で VBE を起動
 2) [挿入]-[標準モジュール] で右空白部分に下記コードを貼り付ける
 3) x をクリックしてExcel画面に戻る

 セルに
 =StrInBtwn(A1)

 Function StrInBtwn(txt As String) As String
 With CreateObject("VBScript.RegExp")
     .Pattern = "(\S)"
     .Global = True
     StrInBtwn = Trim(.replace(txt,"$1" & Chr(32)))
 End With
 End Function
 (seiya)

 seiyaさ〜ん、"のいっ、位置がぁ〜
 (ROUGE)

 あれ? だめだった?
 一応変更しましたが... (seiya)

 "$1" & " "
 では?
 (ROUGE)

 この部分もMeta characterだからちょっと違うと思う。
 テストできないのでなんとも.... (seiya)

 "$1\s" だと、\sも文字列として扱われてしまっているようなので・・・
 (ROUGE)

 "$1" & Chr(32) でいけますか? (seiya)

 いけます!
 Trimはかまさなくて良い?
 (ROUGE)

 最後にスペースを入れないのならTrimですね、
 問題の意図が不明だったので... 
 検証ありがとうございます (seiya)

 どういたしまして〜♪
 ひとつ教えてください。
 "$1"にはどのような意味があるのでしょうか?
 (ROUGE)

細かく面倒をみていただきましてありがとうございます。
早速使わせていただきます。
ありがとうございました。
(ヒロ)

 正規表現では Pattern で()で指定した文字列を
 その位置で参照できます。

 今回は一つなので $1

 もし複数なら
 例えば、小文字と大文字の間に/を挿入の場合
 Pattern = "([a-z])([A-Z])"
 "$1/$2"
 なんて事も...(seiya)

 $n --> n文字目ってことですね。
 ありがとうございましたぁ!
 (ROUGE)

 こんちくは。
 もう必用なさそうですが、 おもしろそうだったので。

 関数なのでA1に 山本太郎 ならB1に=spt(A1)
 (ramrun)

 Function spt(ByRef str As String) As String
   If Len(str) > 0 Then spt = Left(str, 1) & " " & spt(Mid(str, 2, 99))
 End Function

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.