プロが教える店舗&オフィスのセキュリティ対策術

Cells.Select
Selection.Replace What:="東京", Replacement:="東京都", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

このような置換のマクロが何十個とあって
置換前の語句と置換後の語句ごとに
すべて記述していますが
「置換の記述そのものはまったく同じなので
 その中に語句を順番に入れ込んでいく」
という風な記述はできるものでしょうか?
もし方法があるならば御教授願いたいです
宜しくお願い致します

A 回答 (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
    • good
    • 1
この回答へのお礼

早速の御回答ありがとうございました!

配列を使ってみると同じ結果を出す
記述内容が非常に簡略化されてみやすくなりました
とっても配列ってとても強力なのですね

勉強になりました 今後も応用が利きそうです
本当にありがとうございました!

お礼日時:2005/05/17 13:41

hana-hana3 さんのサンプルに少し手を加えると、


マクロ内のテーブルではなく、シートのセルに、
置換前文字・置換後文字を入れておいて、
それをループで読み込めば、マクロの修正は不要に
なりますね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

あらかじめシートに置換前置換後文字を
入れておいてまわして行く方法も
おっしゃるとおり ありますね。
今回はシート全部が対象だったもので
使用しませんでしたが 
教えていただいた方法も 今後使う機会のために
勉強したいとおもいます

かいとうありがとうございました

お礼日時:2005/05/17 13:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!