• 締切済み

エクセル VBA "-"ハイフンの削除

お世話になります。 セルに含まれる文字列の中から"-"ハイフンを削除しようと思い、 Cells.Replace What:="-", Replacement:="" と記述したのですが、例えば 0-0-0-111 は 111 となってしまい、"0"も消えてしまいます。もちろん、"0-0-0-111 "は文字列です。 また、シート内の全てのセルが文字列にならなければいけないので関数式を入れることはできません。ハイフンの位置もその都度バラバラです。 よろしくお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

TENSAW
質問者

お礼

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

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

一般機能と同じことですが・・・。 1. 先頭に ' を付ける With ActiveCell .Value = "'" & Replace(.Value, "-", "") End With あるいは、 2. セルの書式を文字列にする With ActiveCell .NumberFormatLocal = "@" .Value = Replace(.Value, "-", "") End With

TENSAW
質問者

お礼

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

関連するQ&A

専門家に質問してみよう