- ベストアンサー
ExcelのVBA セル内の文字書き換えについて
例えば、H列の100から200までの行に H100「なし1-1」 H101「なし1-2」 H103「なし1-3」 H104「なし2-1」 のように文字が入ってるとします。 この100~200の行に入っている「なし」の部分だけを「りんご」に変えたい場合はどういったVBAを書けばいいのでしょうか。よろしくお願いしますm(_ _ )m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 補足の関数での方法について・・・ どこか使っていないセルに =SUBSTITUTE(H100,"なし","りんご") という数式を入れ100行分オートフィルで下へコピー! もし元のセルに表示させたい場合は 数式が入ったセルを範囲指定 → 右クリック → コピー → H100セルを選択 → 「形式を選択して貼り付け」を選択 → 「値」にチェックを入れOK これで何とか希望通りにならないでしょうか?m(_ _)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 関数で簡単にできますが・・・ VBAをご希望だというコトなので、 一例です。 Sub test() Dim i As Long For i = 100 To 200 Cells(i, "H") = Replace(Cells(i, "H"), "なし", "りんご") Next i End Sub こんな感じではどうでしょうか?m(_ _)m
補足
見事に綺麗にできました。 >関数で簡単にできますが・・・ そうなんですか!?てっきりVBAじゃないとできなと思っていました(≧ヘ≦) よろしければ今後の参考の為に関数の方もご伝授頂けないでしょうかm(_ _ )m
- mu2011
- ベストアンサー率38% (1910/4994)
ご例示の先が読めませんが、先ずは範囲の選択→置換の操作をマクロ記録して確認してみて下さい。 多分、以下の様なコードが標準モジュールに記録されていると思います。 Sub Macro1() ' ' Macro1 Macro ' ' Range("H100:H200").Select Selection.Replace What:="なし", Replacement:="りんご", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub
お礼
おおー素晴らしい(*゜▽゜ノノ゛☆パチパチ 丁寧でわかりやすくて助かりましたm(_ _ )m ありがとうございます。