[[20080211145223]] 『数字の頭に文字を付け加える方法』(NODDY) ページの最後に飛ぶ

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

 

『数字の頭に文字を付け加える方法』(NODDY)

初めまして。教えて下さい。
一つのセルに連番の数字が1スペースおきに入っています。それぞれの数字の頭にローマ字を加えたいとき、どうしたらよいでしょうか?

231 232 233 234 235 236 237 238 239


A231 A232 A233 A234 A235 A236 A237 A238 A239

宜しくお願いします。


 ユーザー定義書式で
 "A"0
 としてみてはいかがでしょう?
 (MARBIN)

 一つのセルに入っているのですね。
 私のレスは無視してください・・・。
 (MARBIN)

 最初の数字以外は、置換でいけますね。

 「 2」→「 A2」で。
 ※数字の最初の文字が同じ数字でない場合は
 この方法ではいけません。
 (MARBIN)

 ひとつのセルの話なら、、、
 「スペース」を「スペース"A"」に置換後、頭に単発の"A"を付け加える

 沢山あるセルの話なら、、、
 隣の列に下式で文字列を作ってから、コピー→値の貼り付け

 ="A"&SUBSTITUTE(TRIM(A1)," "," A")

 (半平太)

ありがとうございます。
一つのセルなんで、置換でやってみました。
もし最初の数字が一緒でなくてもできる方法が他にあったらまた、教えて下さい。


 VBAでスペースでSplitしたものを配列に取込んで、配列の各アイテムに"A"を付加する、
 という方法があります。
 (MARBIN)

 半平太さんの方法
 >「スペース」を「スペース"A"」に置換後、頭に単発の"A"を付け加える
 だと、最初の数字が一緒でなくても出来ると思いますが。

 >最初の数字以外は、置換でいけますね。
 これは引き継がれますが。

 (HANA)

 例えばこんな塩梅に(手柄横取り作戦)^^
 Alt+F11→挿入→標準モジュールを選択して下のコードをコピペ
 戻って範囲を選択した上Alt+F8で 文字挿入を実行
     (弥太郎)
 '-----------------------
 Sub 文字挿入()
    Dim i As Integer, c As Range, txt, x()
    For Each c In Selection
        If c Like "*" & " " & "*" Then
            txt = Split(c, " ", -1)
            For i = 0 To UBound(txt)
                ReDim Preserve x(i)
                x(i) = "A" & txt(i)
            Next i
            c = Join(x, " ")
        End If
    Next c
 End Sub


みなさんありがとうございます。

>弥太郎さん
やってみました。結果下記の様にAの数が多くでてしまいました。

A260 A A261 A A262 A A263 A A264 A A265 A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

セルにもともと入っていた数は、260-265です。


 265の右にスペースがいくつも入っている、ということはありませんか?
 (MARBIN)

 MARBINはん、フォローおおきに〜
 さらに数値と数値の間は全角スペースでっか?
        (弥太郎)

 さういうデータならそれに対応する改訂版を載せておきます。
 データ間の半角スペース2個までOKです。265の右側スペースはなんぼでもOK
     (弥太郎)
 '----------------------------
 Sub 文字挿入()
    Dim i As Integer, c As Range, txt, data As String, x()
    For Each c In Selection
        data = RTrim(c)
        data = Replace(data, "  ", " ")
        If c Like "*" & " " & "*" Then
            txt = Split(data, " ", -1)
            For i = 0 To UBound(txt)
                ReDim Preserve x(i)
                x(i) = "A" & txt(i)
            Next i
            c = Join(x, " ")
        End If
    Next c
 End Sub

 ついでにスペースが文字間になんぼ入っていてもいらっしゃいのmourokuマクロです。
     (弥太郎)
 '----------------------------------
 Sub 文字挿入SP_OK_Ver()
    Dim c As Range, mch As Object, i As Integer, x()
    With CreateObject("vbscript.regexp")
        .Pattern = "(\d+|\D+)[ \s]*"
        .Global = True
        For Each c In Selection
            If .test(c) Then
                For Each mch In .Execute(c)
                    ReDim Preserve x(i)
                    x(i) = .Replace(mch, "A" & Left(mch, IIf(InStr(mch, " ") = 0, _
                                        Len(mch), InStr(mch, " ") - 1)))
                    i = i + 1
                Next mch
                c = Join(x, " ")
            End If
        Next c
    End With
 End Sub


スペースは半角でたくさんあります。
上のマクロでうまいこといきました。ありがとうございます。

コメント返信:

[ 一覧(最新更新順) ]


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