dポイントプレゼントキャンペーン実施中!

お世話になります。
セルに含まれる文字列の中から"-"ハイフンを削除しようと思い、
Cells.Replace What:="-", Replacement:=""
と記述したのですが、例えば
0-0-0-111

111
となってしまい、"0"も消えてしまいます。もちろん、"0-0-0-111
"は文字列です。
また、シート内の全てのセルが文字列にならなければいけないので関数式を入れることはできません。ハイフンの位置もその都度バラバラです。
よろしくお願いいたします。

A 回答 (2件)

こんばんは。



Sub Test1()
  Dim r As Range
  Dim c As Variant
  On Error Resume Next
  Set r = Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
  On Error GoTo 0
  For Each c In r.Cells
    If c.Value Like "#*" And c.PrefixCharacter = "" Then
      c.Value = "'" & Replace(c.Value, "-", "", , , vbTextCompare)
    End If
  Next c
End Sub
    • good
    • 0
この回答へのお礼

御礼が遅くなり大変申し訳ございません。
エラー処理にまで気を利かせてくださり大変助かりました。
ありがとうございました。

お礼日時:2009/01/04 16:56

一般機能と同じことですが・・・。



1.
先頭に
'
を付ける
With ActiveCell
.Value = "'" & Replace(.Value, "-", "")
End With

あるいは、
2.
セルの書式を文字列にする
With ActiveCell
.NumberFormatLocal = "@"
.Value = Replace(.Value, "-", "")
End With
    • good
    • 1
この回答へのお礼

御礼が遅くなり大変申し訳ございません。
先頭に"'"はその後の処理によりわけがありつけることができないのです。
また、2案に関しましてはすでに試してみたのですが。。。だめでした。
どうもありがとうございました。

お礼日時:2009/01/04 16:58

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

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