「これはヤバかったな」という遅刻エピソード

以下は同一ブック内の「置換」のワークシートに

A列に検索文字
B列に置換文字

を書き、置換するマクロなのですが、これですと同一ブック内でしか作業できません。

このリストを別ファイル(例えば"Book2.xls"の"sheet1")に書き、別のファイル(例えば"Book1.xls")で実行するにはどうしたらよいでしょうか。

Sub 置換()
For i = 1 To Worksheets("置換").Range("A65536").End(xlUp).Row
Cells.Replace What:=Worksheets("置換").Range("A" & i).Value, _
Replacement:=Worksheets("置換").Range("B" & i).Value, _
LookAt:=xlPart, SearchOrder:=xlByColumns
Next
End Sub

A 回答 (2件)

明示的に対象となるシートを指定すれば良いだけです。


例えば、標準モジュールに下記を転記して、そのブック(質問では Book2.xls)の一番左のシートに置換用の設定をします。
Sub 置換()
 With ThisWorkbook
  If ActiveSheet Is .Worksheets(1) Then Exit Sub
  For i = 1 To .Worksheets(1).Range("A65536").End(xlUp).Row
   ActiveSheet.Cells.Replace _
     What:=.Worksheets(1).Range("A" & i).Value, _
     Replacement:=.Worksheets(1).Range("B" & i).Value, _
     LookAt:=xlPart, SearchOrder:=xlByColumns
  Next
 End With
End Sub

置換したいブック(質問では Book1.xls)の対象シートを選択して実行すれば希望の動作になると思います。
    • good
    • 0
この回答へのお礼

なるほど、ありがとうございます。
置換リストを書いたブック(ここではBOOK2.xls)のマクロではなく、PERSONL.xlsのマクロとして動作させることは可能でしょうか? つまり置換リストを書いたブック(ここではBOOK2.xls)を開かずに実行できないかな、ということでございます。

お礼日時:2007/01/19 22:55

#1です。



簡単なのは PERSONL.xls のシートに置換リストを書く事だと思いますが、、、
    • good
    • 0
この回答へのお礼

外部から呼び出したかったのですが、#1の方法で良さそうですね。
ありがとうございました。

お礼日時:2007/01/20 16:16

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


おすすめ情報