システムメンテナンスのお知らせ

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

特定の文字の前後に半角スペースを一括挿入したいと思うのですが、こういうことって可能ですか?

例えば、「ワールドカップ2010」→「ワールドカップ 2010」みたいな感じです。

「プ」の後か「2」の前に半角スペースを挿入したいです。

教えてください。

gooドクター

A 回答 (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
    • good
    • 2

基本的には関数、VBAでやるより、操作の「置換」ほうが簡単だ。

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

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

お礼日時:2010/07/01 09:56

抜けてた、




Sub Tikan()

ActiveCell.Value = Replace(ActiveCell.Value, "ワールドカップ", "ワールドカップ ")

End Sub
    • good
    • 0

Sub Tikan()



 ActiveCell.Value = Replace("ワールドカップ", "ワールドカップ ")

End Sub


これでいいんか?
    • good
    • 0

置換で検索文字列欄に「プ2」、置換文字列欄に「プ 2」で如何でしょうか。


因みに「」は不要です。
    • good
    • 2

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

    • good
    • 0

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

    • good
    • 0
この回答へのお礼

これじゃ判りませんね。

お礼日時:2010/06/30 12:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング