• 締切済み

エクセルで、ある列に、ある文字列が入力されたら、自動的に置換処理を行うよう設定できるのでしょうか?

エクセルで、こういうことができるでしょうか? A列(といいますか、どの列でもいいのですが)に、 ある文字列(例えば「abc.com」とします)をコピペで入力すると、 ただちに自動的に、その「abc.com」の文字が「xyz.net」に置換処理されるというような。 ・・・・・・・・・・・・・・ より具体的に言えば、 A列には、他のデータからまとめて何百行ものURLを コピペで入力するという作業をしております。 それらのURLの中には、「abc.com」や「def.biz」や「xyz.net」 など、さまざまなデータが紛れ込むことは避けられません。 作業の目的として、 A列には、絶対に「abc.com」というドメインは入って ほしくないのです。 ですからこれまでは、定期的にA列をまるごと選択して、 その「abc.com」というドメインの文字を「xyz.net」など、別の文字列に置換処理していたのです。 しかし、定期的とはいえ、 1日にかなりの回数の置換操作をするのは面倒なので、 コピペした瞬間に、自動的に自分の望む文字列に置換処理してくれるような設定ができないだろうかと考えたわけです。 エクセルに詳しい方がいましたら、 教えていただけるとありがたいです。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

複雑に質問しているが、悩むことは何も無いのでは。 ただし質問の課題を設定か何かで自動的にさせることはありえない。 >エクセルに詳しい方がいましたら、と言ってみても、無いものはない。VBAの問題です。VBAの経験がないのならあきらめてください。 ーー コピー貼り付けは人手で今までどおりやるというのだろうから、 コピペが一段落したところで、置換処理を下記方法のどれかでやれば済むのでは。 (1)関数のSUBSTITUTEはセル単位に式を入れなければならないので 面倒なようにも思うが(別シートに式を作っておくか?) (1)’ただしVBAで対象の全セルについて、SUBSTITUTEして元のセルの値に置き換えるのは使えると思うが。 (2)手作業の置換の、全て置換を操作で行う (3)コマンドボタンを1つシートに張り付け、そのクリックイベントに、「マクロの記録で採ったコード」を挟み込んでコピペする などどうでしょう。 セルの値のChangeイベントで(3)のようなことをやらせる質問表現だが(>コピペで入力すると、ただちに自動的に)、処理に負荷がかかり、わずらわしいだけと思うが。 ーー シートのセルに、他からのデータをコピペしても Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "AA" End Sub が働くことは確認したが。

bluesky-7
質問者

お礼

VBAのことは何もわからないのですが 参考にさせていただきます。 ありがとうございました。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

A列にURLをコピーしたあとB列に以下の式をコピーとか。 =SUBSTITUTE(A1,"abc.com","xyz.net") A1の文字列内にある「abc.com」を「xyz.net」に置き換えするという式です。 まぁ置き換えよりは多少クリック数が少なくて済むという程度ですが。最初からB列に式が用意されているシートを準備しておいて、そこにURLをコピーするようにすればマシになるでしょうか。

bluesky-7
質問者

お礼

=SUBSTITUTE(A1,"abc.com","xyz.net") を、少し応用したら、希望の操作ができました。 ありがとうございました。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.1

はじめまして >「abc.com」というドメインの文字を「xyz.net」など、別の文字列に置換処理していたのです 「abc.com」と入力されたら無条件に「xyz.net」と置換するのであればマクロ(VBA)で簡単に行うことができます。 ただ、 >コピペした瞬間に >定期的とはいえ、1日にかなりの回数の置換操作をするのは面倒 データが変更された時にマクロを起動する(イベントプロシージャ)ことは出来ますが、コピペではマクロがうまく起動しないことがあります。 定期的な置換作業で実用的に問題はないけれど面倒、という場合には一連の置換作業をマクロにしておいて定期的にマクロを手動で起動する方法があります。 差し支えのない範囲で実際の例を具体的に示してもらえればもう少し詳しい回答も出来るかと思います。

bluesky-7
質問者

お礼

ありがとうございました。参考になりました。

関連するQ&A