[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数字の頭に文字を付け加える方法』(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.