- ベストアンサー
エクセルで特定の文字の前や後で半角スペースを一括挿入したい。
エクセルで特定の文字の前や後で半角スペースを一括挿入したい。 特定の文字の前後に半角スペースを一括挿入したいと思うのですが、こういうことって可能ですか? 例えば、「ワールドカップ2010」→「ワールドカップ 2010」みたいな感じです。 「プ」の後か「2」の前に半角スペースを挿入したいです。 教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
このコードは、数値や英文字との区切りの間に半角スペースを入れるものです。全角には反応しません。 //コマンドボタンに貼り付けるなら、フォームボタンがよいです。 Sub Main() Dim c As Variant Dim rng As Range If TypeName(Selection) = "Range" Then Set rng = Selection If rng.Count = 1 Then _ MsgBox "セルの範囲を選択してください。", vbExclamation: Exit Sub For Each c In rng c.Offset(, 1).Value = SpaceEnter(c.Value) Next End If End Sub Public Function SpaceEnter(strVal As Variant) As String Dim buf As String If VarType(strVal) = vbString Then buf = strVal Else Exit Function End If With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\b(\d|[A-z])" 'パターン buf = .Replace(buf, Space(1) & "$1") End With SpaceEnter = buf End Function
その他の回答 (6)
- imogasi
- ベストアンサー率27% (4737/17070)
基本的には関数、VBAでやるより、操作の「置換」ほうが簡単だ。置換の操作は常識だが、置換ロジックがうまく行くかどうかは、質問者が(質問者しか)データの情況を知らないのだから、自分で考えるべきだ。 >、「ワールドカップ2010」→「ワールドカップ 2010」みたいな感じです >「プ」の後か「2」の前に半角スペースを挿入したいです こんな例は質問の例としては大ざっぱ過ぎるのではないか。例えを単純化しすぎでは。 これを機械的に置換して、置換しなくても良いものを置換しないかどうか。 それでよければ 編集ー置換ー検索する文字列 プ、置換後の文字列 (プのあとに1スペースを入れる) 全て置換 ーー これより 検索する文字列 プ2、置換後の文字列 (プのあとに1スペースを入れ2を続ける) の方が良い場合もあろう。 ワールドカップ 2010 ワールドカ2011 カップめん ーー 根本的にこれらではまずい場合があるなら、例示して改めて質問のこと。
- TNK787
- ベストアンサー率17% (25/141)
抜けてた、 Sub Tikan() ActiveCell.Value = Replace(ActiveCell.Value, "ワールドカップ", "ワールドカップ ") End Sub
- TNK787
- ベストアンサー率17% (25/141)
Sub Tikan() ActiveCell.Value = Replace("ワールドカップ", "ワールドカップ ") End Sub これでいいんか?
- mu2011
- ベストアンサー率38% (1910/4994)
置換で検索文字列欄に「プ2」、置換文字列欄に「プ 2」で如何でしょうか。 因みに「」は不要です。
- TNK787
- ベストアンサー率17% (25/141)
Replase("ワールドカップ","ワールドカップ ")
- TNK787
- ベストアンサー率17% (25/141)
Replace("あはは","あはは ")
お礼
これじゃ判りませんね。
お礼
ありがとうございます。文章の意味とか書き方とかなんかよく判りませんでした。