- ベストアンサー
エクセルのマクロ 大量の置換の記述を簡略化
Cells.Select Selection.Replace What:="東京", Replacement:="東京都", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False このような置換のマクロが何十個とあって 置換前の語句と置換後の語句ごとに すべて記述していますが 「置換の記述そのものはまったく同じなので その中に語句を順番に入れ込んでいく」 という風な記述はできるものでしょうか? もし方法があるならば御教授願いたいです 宜しくお願い致します
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 2つの配列にいれてぐるぐる廻します。 一つの配列で済ませる方法もあります。 範囲が決まっているなら、Range("A5:A100")のように決めうちしても良いかと思います。 Sub Rp1() Dim SCN As Variant Dim REP As Variant Dim i As Integer SCN = Array("東京", "愛知", "大阪") REP = Array("東京都", "愛知県", "大阪府") For i = LBound(SCN) To UBound(SCN) Selection.Replace What:=SCN(i), Replacement:=REP(i) Next End Sub
その他の回答 (1)
- kokorone
- ベストアンサー率38% (417/1093)
hana-hana3 さんのサンプルに少し手を加えると、 マクロ内のテーブルではなく、シートのセルに、 置換前文字・置換後文字を入れておいて、 それをループで読み込めば、マクロの修正は不要に なりますね。
お礼
回答ありがとうございます あらかじめシートに置換前置換後文字を 入れておいてまわして行く方法も おっしゃるとおり ありますね。 今回はシート全部が対象だったもので 使用しませんでしたが 教えていただいた方法も 今後使う機会のために 勉強したいとおもいます かいとうありがとうございました
お礼
早速の御回答ありがとうございました! 配列を使ってみると同じ結果を出す 記述内容が非常に簡略化されてみやすくなりました とっても配列ってとても強力なのですね 勉強になりました 今後も応用が利きそうです 本当にありがとうございました!