• ベストアンサー

エクセルで特定の文字の前や後で半角スペースを一括挿入したい。

エクセルで特定の文字の前や後で半角スペースを一括挿入したい。 特定の文字の前後に半角スペースを一括挿入したいと思うのですが、こういうことって可能ですか? 例えば、「ワールドカップ2010」→「ワールドカップ 2010」みたいな感じです。 「プ」の後か「2」の前に半角スペースを挿入したいです。 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

このコードは、数値や英文字との区切りの間に半角スペースを入れるものです。全角には反応しません。 //コマンドボタンに貼り付けるなら、フォームボタンがよいです。 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)
回答No.7

基本的には関数、VBAでやるより、操作の「置換」ほうが簡単だ。置換の操作は常識だが、置換ロジックがうまく行くかどうかは、質問者が(質問者しか)データの情況を知らないのだから、自分で考えるべきだ。 >、「ワールドカップ2010」→「ワールドカップ 2010」みたいな感じです >「プ」の後か「2」の前に半角スペースを挿入したいです こんな例は質問の例としては大ざっぱ過ぎるのではないか。例えを単純化しすぎでは。 これを機械的に置換して、置換しなくても良いものを置換しないかどうか。 それでよければ 編集ー置換ー検索する文字列 プ、置換後の文字列 (プのあとに1スペースを入れる) 全て置換 ーー これより 検索する文字列 プ2、置換後の文字列 (プのあとに1スペースを入れ2を続ける) の方が良い場合もあろう。 ワールドカップ 2010 ワールドカ2011 カップめん ーー 根本的にこれらではまずい場合があるなら、例示して改めて質問のこと。

soynoby
質問者

お礼

ありがとうございます。文章の意味とか書き方とかなんかよく判りませんでした。

  • TNK787
  • ベストアンサー率17% (25/141)
回答No.5

抜けてた、 Sub Tikan() ActiveCell.Value = Replace(ActiveCell.Value, "ワールドカップ", "ワールドカップ ") End Sub

  • TNK787
  • ベストアンサー率17% (25/141)
回答No.4

Sub Tikan()  ActiveCell.Value = Replace("ワールドカップ", "ワールドカップ ") End Sub これでいいんか?

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

置換で検索文字列欄に「プ2」、置換文字列欄に「プ 2」で如何でしょうか。 因みに「」は不要です。

  • TNK787
  • ベストアンサー率17% (25/141)
回答No.2

Replase("ワールドカップ","ワールドカップ ")

  • TNK787
  • ベストアンサー率17% (25/141)
回答No.1

Replace("あはは","あはは ")

soynoby
質問者

お礼

これじゃ判りませんね。