• ベストアンサー

Excel2003 VBA 「*」を含む文字列の置換方法は?

セルに「あいうえお あい*うえお」という文字列がある場合 そのセルに対して Cells.Replace What:="あい*うえお", Replacement:="" の処理を実行するとすべて消えます この場合「あいうえお」だけを残すには どのようにすればいいのでしょうか?

noname#50030
noname#50030

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

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> Cells.Replace What:="あい*うえお", Replacement:="" 要するに、「*」がワイルドカードにならないようにしたいんですよね? > Cells.Replace What:="あい~*うえお", Replacement:="" では? 「Excel でチルダおよびワイルドカード文字を検索し置換する方法」 (http://support.microsoft.com/kb/214138/ja

その他の回答 (1)

noname#31387
noname#31387
回答No.1

よく分かりませんが こういう事ですか? Cells.Replace What:="あいうえお あい*うえお", Replacement:="あいうえお"

関連するQ&A

  • 文字列変換(置換)方法について

    Selection.Replace を利用して単体の文字を置換することはできるのですが、 例えば とあるセルに りんご+みかん+めろん っていう文字列が入力されていた場合、 Selection.Replace what:="りんご" , replacement:="" をすることによって、結果、 +みかん+めろん にすることはできますが、 ++だけにするようにはできませんでしょうか。 りんご+みかん+めろん+なし+・・・・・っと 20パターンぐらいあるので、 Selection.Replace では難しいのではと思っております。 該当の文字列だけ消す処理をしたいです。 すいませんがお願いします

  • エクセル 点在する ある文字列の8文字目を置換する方法について

    エクセルで表を作っています(A4サイズ) ここには、いくつか不規則に TRC-000400-L という文字列が、点在しています。 この文字列の8桁めの4を8に変えたいとき、どうしたらいいのでしょうか。 ただし、0の部分は、数値がいろいろ入りますので、 頭にTRC-がついている場合に、8桁目の4を8に変えたいのです。 自分で、記録のマクロを加工して Cells.Find(What:="TRXS-*").Activate 'REPLACE(ActiveCell,8,1,5) Cells.Replace What:="TRXS-*", Replacement:=(LeftActiveCell, 8) = 5) などと作ってみましたが、FALSEの値が帰ってきました。 どのようにするといいのでしょうか どうかお知恵をおかしください よろしくお願いいたします

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

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

  • Excelの置換で書式が変わる現象の回避策

    下記のようなマクロで複数の置換をしています。 Cells.Replace What:="★", Replacement:="☆", MatchCase:=True Cells.Replace What:="◆", Replacement:="◇", MatchCase:=True Cells.Replace What:="■", Replacement:="□", MatchCase:=True ・ ・ ・ セル内で改行して文字サイズや色を変えている箇所では置換後1行目の書式に変わってしまいます。 文字だけを置換をしたいのですがこれを回避する方法はあるのでしょうか教えてください。

  • 置換のVBA

    エクセルのあるシート内の「abc」という文字列を「abc20」に置換するには以下で可能ですが、 Sub chikan() Cells.Replace What:="abc", Replacement:="abc" & "20", _ LookAt:=xlPart,SearchOrder:=xlByRows, MatchCase:=False End Sub 「abc」という文字列を連番で「abc20」「abc21」「abc22」・・・・・というふうに置換するにはどうすればいいでしょうか?

  • エクセル2003で特殊文字の置換方法

    エクセル2003、XPを使用しています。 エクセルのマクロで置換をしているのですが、 置換対象がCHAR(160)です。 セル上に上のを打ち込むと、実際は違いますが半角スペースに見えます。 特殊文字であっているのでしょうか。 それで、この文字を消したいと思い、以下の通りマクロで記述しているのですが、成功しません おわかりになる方いらしたらよろしくお願いします。 Cells.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

  • 置換する場合も最高文字数は何文字ですか?

    エクセルvbaで置換する場合も最高文字数は何文字ですか? と言うのも、 Cells(1, 1).Replace What:=mystr, Replacement:="", LookAt:=xlPart で、mystrは260文字なのですが、これを実行しようとすると 型が一致しません。(Error 13) と言うエラーになるのですが、 これは変数に格納されている文字数が多いせいか、他のエラーなのかわからないのですが 文字制限ってあるのでしょうか?

  • エクセルの文字列置換マクロに関するご相談

    下方のマクロを実行することにより、 文字列リストの内容に基づいて、 別シート(作業)内の文字列を変換することができます。 文字列からコード値へ変換することを目的にマクロを埋め込んだのですが、 別シート(作業)の文字列をコード値に変換した際、3桁くぎりのコード値が並んだ場合に、 自動で数値として認識されてしまいます。 ※別シート(作業)のセルを文字列し設定しても発生します。 プログラムで回避手段があるようでしたらご教示いただければ幸いです。 例)文字列リストシート A B さる 10 ぞう 15 ごりら 101 きりん 102 わに 103 かば 104 マクロ実行前の作業シート A さる,ぞう ごりら ごりら,きりん,わに さる,ごりら マクロ実行後の作業シート A 10,15 101 101102103 10101 上記マクロ実行後のシートの3~4行目のように、 カンマが取れることを防ぎ、文字列として代入したい所存です。 <マクロ> Sub 文字列リストに基づき連続して置換する() i = 2 Do x1 = Sheets("文字列リスト").Cells(i, 1) x2 = Sheets("文字列リスト").Cells(i, 2) Sheets("作業").Cells.Replace _ What:=x1, Replacement:=x2, _ SearchOrder:=xlByColumns, MatchCase:=True i = i + 1 Loop Until Sheets("文字列リスト").Cells(i, 1) = "" End Sub ご教示いただければ幸いです。 よろしくお願いいたします。

  • セルに入力した文字を別のシートで置換する方法

    複数置換を行いたいと思い、以下のマクロを作成しました。 If Range("B18") <> "" Then Cells.Replace what:=Range("B18"), replacement:=Range("D18") end if B18のセルが空欄ではない場合、 そのセルに入った文字を検索し、別の文字に変換するというものです。 1つや2つほどであれば、ショートカットキーを使って 置換をしていけば良いと思うのですが、 10項目以上、置換しなくてはならず同時処理を行いたいと思っています。 ただし、その10項目については対象ファイルごとにバラバラで、 統一性がないため、VBAの中に組み込むよりかは、 置換したい文字を各セルに入れていき、置換できればと思い、 マクロの作成を行いました。 ただ、上のマクロでは同じファイルではないと処理ができません。 ActiveSheetを使って処理を行うとは思うのですが、どのように記述してよいか分かりません。 お力添えを頂ければと思います。 上記内容で分かり辛いかもしれませんので、以下に箇条書きします。 1)複数置換を行いたい。 2)Aセルに置換対象の文字を入れ、Bセルに置換したい文字を入れる。 3)実行すると全シート上でA1セルに入力された文字を検索し、B1セルに入力してある文字に置き換わる。 4)これらの処理は同一ファイルで行うのではなく、それぞれ別ファイルで管理をする。 ※対象ファイルと実行データが別々のもの 以上です。 説明が分かりにくく、申し訳ありません。 もしVBAで以上のような処理が可能な場合、ご教授頂けますと幸いです。 (使用しているバージョンは、2003です。)

  • vbaで全シートのある列のスペースを消したい

    vba修行中の初心者です。 シートをすべて選んだ状態である列(ここではI列)を選び、セルの中のスペースをすべて消すということをしたいのですが、 Worksheets.Columns("i:i").Select.Replace What:=" ", Replacement:="", Matchbyte:=False にすると、コンパイルエラーが出ます。 どのように書き直せばよいのでしょうか? どうぞお助けください。 よろしくお願いいたします。

専門家に質問してみよう