• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 全てのセルの一部に特定の語句があれば置換したい。)

Excel VBA 全てのセルに特定の語句があれば置換したい方法

このQ&Aのポイント
  • Excel VBAを使用して、全てのセルに特定の語句があれば別の語句で置換する方法について教えてください。
  • Excelのセル内の語句を置換するためのVBAコードを作成しましたが、実際には全てのセルが置換されていないようです。どのような方法を取れば良いでしょうか?
  • Excel 2007でのVBAを使用して、全てのセルに特定の語句を置換する方法について教えてください。セル内には全角と半角文字が混在しており、置換したい文字列の位置も不定です。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答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

tom29911954
質問者

お礼

ありがとうございました。 良くわかりました。 初心者と言えども、もう少し勉強しないとだめですね。 急ぎで、取り敢えずって感じで進めている事情もあり、大変助かりました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答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

回答No.1

For Each myCell In Selection Selectionですから選択された範囲です 置換したいセルをすべて選択しましたか?

関連するQ&A