![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Excel VBA 全てのセルの一部に特定の語句があれば置換したい。
Excel VBA初心者です。
Excelの全てのセルに対して、特定の語句があれば別の特定語句で置換したいのですが、どうしたら良いかわかりません。
全角と半角が混在していますので、これは無視したいですし、変換したい文字列の位置は不定です。Excel 2007です。
取り敢えず、細かなな条件は無視して書いたコードは
Dim myCell As Range
Sub rep()
For Each myCell In Selection
myCell.Value = Replace(myCell.Value, "OLD", "NEW")
Next myCell
End Sub
カーソルのある所は置換されますが、それで終わりです。
ご教授下さい。
No.3ベストアンサー
- 回答日時:
Cells.Replace What:="OLD", Replacement:="NEW", LookAt:=xlPart
で全部を一発で変換できると思いますが、For Nextで回しているということは何か他の条件があるからですね?
ならば、一例です。
tom29911954さんご提示のコードは選択した範囲のセルをFor Nextで順に見ていってますが、下記のは選択の有無にかかわらず、文字列が入力されたセルだけを順に見に行ってます。
また、Dim myCell As Rangeの変数宣言は、何か別の目的があってしているならともかく、そうでないならプロシージャの中で宣言します。
Sub rep()
Dim myCell As Range
For Each myCell In Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
myCell.Value = Replace(myCell.Value, "OLD", "NEW")
Next myCell
End Sub
ありがとうございました。
良くわかりました。
初心者と言えども、もう少し勉強しないとだめですね。
急ぎで、取り敢えずって感じで進めている事情もあり、大変助かりました。
No.2
- 回答日時:
こんばんは!
置換したいセルをすべて選択してマクロを実行してもダメですか?
余計なお世話かもしれませんが・・・
セルを選択せずにそのSheetすべてで置換する方法として
一例ですが、↓のようなコードでもできると思います。
Sub test1()
Dim i, j As Long
For i = 1 To ActiveSheet.UsedRange.Rows.Count
For j = 1 To ActiveSheet.UsedRange.Columns.Count
If Cells(i, j) Like "*OLD*" Then
Cells(i, j) = Replace(Cells(i, j), "OLD", "NEW")
End If
Next j
Next i
End Sub
どうも失礼しました。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字の入力がセルの...
-
多数の計算セルに一括で同一の...
-
excelで可視セルのみ置換
-
Excelで、半角スペースをTABに...
-
Excelからテキストへのコ...
-
エクセルでセル内の一部分だけ...
-
Excelの入力済みセルに一括で、...
-
小数点を消す方法
-
エクセルで「4」「9」抜けの...
-
エクセルでスペースの記号を表...
-
【エクセル】ピボットテーブル...
-
置換機能を使わずに先頭に「'」...
-
エクセルのセルの中の,よりも前...
-
excelからメモ帳への貼り付け
-
エクセルの関数で、記号などを...
-
Excelの空文字セルの削除方法を...
-
Excelのmatch関数エラー原因が...
-
エクセルの置換 メアドの@の前...
-
一括でダブルクリックした状態...
-
Excel内の一部の文字列の書式ご...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字の入力がセルの...
-
多数の計算セルに一括で同一の...
-
Excelからテキストへのコ...
-
エクセルのセルの中の,よりも前...
-
置換機能を使わずに先頭に「'」...
-
Excelの入力済みセルに一括で、...
-
excelで可視セルのみ置換
-
Excelで、半角スペースをTABに...
-
Excelのmatch関数エラー原因が...
-
Excelの空文字セルの削除方法を...
-
【エクセル】ピボットテーブル...
-
エクセルでセル内の一部分だけ...
-
小数点を消す方法
-
Excelで特定の文字の前だけに空...
-
Excelのアポストロフィーの削除
-
エクセルの表ををメモ帳などに...
-
エクセルの関数で、記号などを...
-
企業名簿で(株)や(有)を無視し...
-
EXCELで"Tab"を"@"に置換したい
-
エクセルでスペースの記号を表...
おすすめ情報