• ベストアンサー

VBAスクリプトの置換のことで

エクセルのVBAスクリプトのある文字を置換したいのですが。 内容としては、501~520までの数字を601~620に一括変換したいのです。 そのような機能がVBAエディターにあるでしょうか? 場合によっては他のソフトを用いてもけっこうです。 宜しくお願いします。

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

  • ベストアンサー
  • ribisi
  • ベストアンサー率28% (247/864)
回答No.4

#2です。 すいません、間違えました。 検索文字列に 5\f[0-2][0-9]\f 置換文字列に 6\1 と入れて、「正規表現」のチェックボックスをチェックして、 全置換してみてください。

yusari
質問者

お礼

ありがとうございました。 できました! 一つ質問してもいいでしょうか? 501~520 → 634~653 のような置換は無理ということでしょうか?

その他の回答 (4)

  • ribisi
  • ベストアンサー率28% (247/864)
回答No.5

よかった。できましたか。 > 501~520 → 634~653 のような置換は無理 上記の場合ですと、文字列の置換ではなく、 一度、文字を数値に直して、133を加える、という操作になりますね。 こうなると、テキスト処理ではなくなりますので、 スクリプトを書く必要があります。 VBスクリプトでもいいですし、秀丸マクロでもできます。

yusari
質問者

お礼

>こうなると、テキスト処理ではなくなりますので、 >スクリプトを書く必要があります。 また改めて質問してみたいと思います。 ありがとうございました!!

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

置換えしたいセル範囲を選択して下のマクロを実行します。 こういう質問だったのでしょうか。 Sub Okikae501_520()   Dim rg As Range   For Each rg In Selection     If 501 <= rg.Value And rg.Value <= 520 Then       rg = rg + 100     End If   Next End Sub

yusari
質問者

お礼

ありがとうございました。 >こういう質問だったのでしょうか。 違うみたいです(^^;

  • ribisi
  • ベストアンサー率28% (247/864)
回答No.2

もし秀丸エディタをお持ちでしたら、VBAスクリプトをコピーし、 検索文字列に 5\f[0-2]\f\f[0-9]\f 置換文字列に 6\0\1 と入れて、「正規表現」のチェックボックスをチェックして、 全置換してみてください。

yusari
質問者

お礼

ありがとうございました。 早速秀丸エディタをインストールして試してみました。 教えてもらった通りに実行してみると、以下の結果になりました。 501~520の数字が、 650  9個 651 10個 652  1個 でした。

  • asaichi
  • ベストアンサー率21% (37/171)
回答No.1

置換したい文字が他の文字と関係はないのでしょうか? 例えば501だったら「ITEM0501」という感じに…。 なければ、複数置換というエディタのあるので、やれば 良いと思います。 例えば、MIFESSにもその機能はあります。 VBAスクリプトはテキストファイルで保存されていない (EXCEL97の場合)ので、C&Pでやるしかありませんが…。 そうすれば、20回繰り返さなくても、数回の作業でで きます。

yusari
質問者

お礼

ありがとうございました。 >置換したい文字が他の文字と関係はないのでしょうか? 関係ないです。 MIFESを早速インストールして試してみました。 複数置換はできましたが連番置換はできないみたいです。 (置換前と後の文字を全て手入力する必要があるようです) それでもかなり手間は省けそうです。

関連するQ&A