• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA シート名とセル位置の指定)

VBAでシート名とセル位置の指定方法

このQ&Aのポイント
  • VBA(エクセル2007使用)にて、シート名とセルの位置を指定する方法について教えてください。
  • 質問者は連続した置換を実現したいと考えていますが、具体的な置換前・置換後の文字を上手く記載できずに困っています。
  • 以下の手順でマクロを実行しようとしています。 1. 置換前・置換後の文字をエクセルに入力し、コピーする。 2. 置換対象範囲を選択しておく。 3. 新規シート(シート名:「置換用」)を追加し、コピーした文字列をA1に貼り付ける。 4. 置換前の文字の個数を数える。 5. 範囲内の文字列を置換していく際に、別のシートのセルを指定して置換したいと思っていますが、どのように記載すれば良いか分かりません。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

とりあえずこんなカンジで。 sub macro1()  dim Target as range  dim i as long  set target = selection  if application.cutcopymode <> xlcopy then   msgbox "copy find/replacement"   exit sub  end if  with worksheets.add ’.name = "置換用"  .range("A1").pastespecial  for i = 1 to range("A65536").end(xlup).row  target.replace what:=cells(i, "A"), replacement:=cells(i, "B"), lookat:=xlpart  next i  application.displayalerts = false  .delete  application.displayalerts = true  end with end sub

jjnnkk
質問者

お礼

回答ありがとうございます。 まさに、やりたいことがこちらです!!!! つたない文章・コードからやりたいことをくみ取って頂きましてありがとうございます。 私が作っていたものよりも、遥かに高度なテクニック満載で、自分の質問が恥ずかしくなります。。。 COUNTAのような関数をわざわざ入れる必要もないんですね。 はじめに、置換対象の文字をコピーしていなかったら、、メッセージが表示されるという個所も、 ご丁寧にありがとうございます。 1から10まで全て作成頂いてしまいました。本当にありがとうございます。 Dim Target As Range Set Target = Selection  ⇒これで置換対象範囲を呼び出せるんですね。                 シート名を選択しないで書いてみた事が無かったので大変勉強になりました。 全然”とりあえず”なんてものではございません!!!恐れ多いです。 すぐに回答もくださり、本当にありがとうございました!!!!

jjnnkk
質問者

補足

ベストアンサー決定が遅くなってしまい申し訳ありません。 ボタンがきちんと押せていませんでした。。。。 ありがとうございます!!

関連するQ&A