- 締切済み
エクセル VBA "-"ハイフンの削除
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 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
- marbin
- ベストアンサー率27% (636/2290)
一般機能と同じことですが・・・。 1. 先頭に ' を付ける With ActiveCell .Value = "'" & Replace(.Value, "-", "") End With あるいは、 2. セルの書式を文字列にする With ActiveCell .NumberFormatLocal = "@" .Value = Replace(.Value, "-", "") End With
お礼
御礼が遅くなり大変申し訳ございません。 先頭に"'"はその後の処理によりわけがありつけることができないのです。 また、2案に関しましてはすでに試してみたのですが。。。だめでした。 どうもありがとうございました。
関連するQ&A
- シート内のひらがなを全て削除したい
こんばんは。エクセル2003です。 シート内の全てのひらがなを削除して 英数字、漢字、記号のみを残したいのですが Cells.Replace what:="あ", Replacement:="", LookAt:=xlPart Cells.Replace what:="い", Replacement:="", LookAt:=xlPart Cells.Replace what:="う", Replacement:="", LookAt:=xlPart ・ ・ ・ Cells.Replace what:="ん", Replacement:="", LookAt:=xlPart とやっていくしかないでしょうか? 何か効率のいい方法があれば教えて頂ければ助かります。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2003 VBA 「*」を含む文字列の置換方法は?
セルに「あいうえお あい*うえお」という文字列がある場合 そのセルに対して Cells.Replace What:="あい*うえお", Replacement:="" の処理を実行するとすべて消えます この場合「あいうえお」だけを残すには どのようにすればいいのでしょうか?
- ベストアンサー
- Visual Basic
- Excelの置換で書式が変わる現象の回避策
下記のようなマクロで複数の置換をしています。 Cells.Replace What:="★", Replacement:="☆", MatchCase:=True Cells.Replace What:="◆", Replacement:="◇", MatchCase:=True Cells.Replace What:="■", Replacement:="□", MatchCase:=True ・ ・ ・ セル内で改行して文字サイズや色を変えている箇所では置換後1行目の書式に変わってしまいます。 文字だけを置換をしたいのですがこれを回避する方法はあるのでしょうか教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルでVBAを使ってブック内にある特定の言葉をすべて置き換えしたい
VBAの超初心者なのですが、 品番変更に伴い複数枚のシートから成るエクセルファイルの特定の文字を置換えたいのですが・・・。 Range(Cells(1, 1), Cells(65536, 256)).Replace What:="旧品番", Replacement:="新品番" で1枚のシートだけなら置換えできたのですが、すべてのシート(ファイル内すべて)の置換え方がわかりません。 どうしたらよいのでしょう。教えてください。
- 締切済み
- オフィス系ソフト
- 文字列一番右がハイフンのものだけハイフン削除したい
Excel2003を使用しています。以下のリストがあるとします。 01-100-10 01-100-1 01-100-11 01-100-11- 01-100-11- 01-100-11- 01-100-11- 01-100-11 01-100-11 01-100-11 01-100-1 01-100-12- 01-100-1- 01-100-13 01-100-13 このような文字列がずらーっと並んでいまして、その中で文字列一番右のハイフンを削除したいのです。一番右がハイフンでないものはそのままです。 ハイフンを削除するのは置換で出来ますが、それだと真ん中のハイフンも消えてしまいます。 Excelの関数はあまり得意でないので、いろいろ考えたのですがよくわかりませんでした。ご存知の方、ご教授願えないでしょうか。よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excelで、ハイフンを消したいけど000は残したい
A列に、 00033-11-55 00432-12-01 00022-11-56 ・・・・・・ と、5桁-2桁-2桁 の数字がずーっと並んでいます。 これを、B列の、各となりのセルに、 000331155 004321201 000221156 ・・・・・・ というふうに、 ハイフンは消すが、000や00は残した数字を表示させたいです。 単に置換で、「-」を「」に置き換えると、00や000が消えてしまいます。。。。。 A列の、セルの書式設定を文字列にしても駄目でした。 どうすればいいでしょうか? 何かうまい関数などは、ありませんでしょうか?
- ベストアンサー
- その他(インターネット・Webサービス)
- Excel VBAで改行マークを削除する方法
先日QNo.1801087で質問させていただいた件の続きです。 http://okwave.jp/kotaeru.php3?q=1801087 ユーザーフォームのテキストボックスに入力されたデータを複数のセルに入るように教えて頂きました。それは上手く行ったのですが、改行マークが(・)入ってしまって、その後の処理に問題が生じてしまうので、改行を削除するコードを記述しましたが、はじめの「0」が消えてしまって困ってます。 A1 942158621c9c05011020010a03020907・ A2 00054000・ Columns("A:A").Select Selection.Replace what:="" & Chr(13) & "", replacement:="" データは数字とアルファベットがランダムに並んでおり、全て文字列です。 A2のように数字のみの場合もあり、「0」から始まる時もあり、この「0」が一緒に削除されて「54000」となってしまいます。 上手く改行だけを削除し、「00054000」と文字列にするにはどうしたら良いのでしょうか。 Win2000、Office2003です。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル(2003) 「1900/1/0」を消したい
セルA1に0を入力し 書式設定で日付→yyyy/m/dを選択しました。 しかし下記のマクロ実行しても 0が空白になりません。 Sub 日付置換() Cells.Replace what:="1900/1/0", Replacement:="", LookAt:=xlPart Cells.Replace what:="00/01/00", Replacement:="", LookAt:=xlPart Cells.Replace what:="0", Replacement:="", LookAt:=xlWhole End Sub なら最初から0なんか入力しなきゃいいじゃん。 と思われるかもしれませんが これはCSVファイルで出力したもので 最初から0の数値にも書式設定がかかってて「1900/1/0」となっています。 「1900/1/0」のデータをなくしたいのですが どんな方法がありますか? データ量が多いためマクロなどで一度に行ないたいです。 アドバイスよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAのFind について
VBAで、特定の文字が入っているセル位置(結合セル)を取得したく、 シートのコード記述で --- Private Sub Worksheet_Change(ByVal Target As Range) Dim w_CelObj As Object Set w_CelObj = ActiveSheet.Cells.Find(What:="あああ", LookAt:=xlWhole, MatchByte:=False) MsgBox w_CelObj.Row MsgBox Cells.Find(What:="いいい").Row End Sub ----- と記述し、"aa"も"bb"もどちらの方法でも取得できました。 ですが、これを別のEXCELブック(既にシートがたくさんあり、コードもびっしり記述してあります)で同様のことを行おうとするとエラーになってしまいます。 ※新しいシートを作成し、そのシートにコードをコピーして試しました。 セルの結合を解除すると正常に取得できるのですが、結合セルだとFindされてきません。 調べてみましたが、「Cells.Find」ときちんとセル全体を指定していれば大丈夫のようで、同様の事例を検索できませんでした。 他に何を調べればよいでしょうか? ご協力よろしくお願いします。
- 締切済み
- オフィス系ソフト
お礼
御礼が遅くなり大変申し訳ございません。 エラー処理にまで気を利かせてくださり大変助かりました。 ありがとうございました。