
置換専用につくったワークシートに
A列に検索文字
B列に置換文字を入力したリスト(例えば"Book2.xls"の"sheet1")を作りました。
このリストを使って別のブック内(例えば"Book1.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
No.3ベストアンサー
- 回答日時:
No.2さんのおっしゃることで完璧です。
コードが書かれているブックのA:B列の複数置換条件をもとに
E:\Office\Excel\Book1.xlsの各ワークシートを置換する例です。
Sub 置換1()
Dim cntRow As Long
Dim myRng As Range
Dim myBook As Workbook
Dim mySht As Worksheet
Dim i As Long
'置換範囲をRangeオブジェクトmyRngに代入
With ThisWorkbook.Worksheets(1)
cntRow = .Range("A" & Rows.Count).End(xlUp).Row
Set myRng = .Range("A1:B" & cntRow)
End With
'対象ブックOpen
Set myBook = Workbooks.Open("E:\Office\Excel\Book1.xls")
'対象ブックのワークシートをループ
For Each mySht In myBook.Worksheets
For i = 1 To cntRow
If Len(myRng(i, 1).Value) > 0 Then
mySht.Cells.Replace _
What:=myRng(i, 1).Value, _
Replacement:=myRng(i, 2).Value, _
LookAt:=xlPart, SearchOrder:=xlByColumns
End If
Next i
Next
End Sub
※上のコードの変形です...
Sub 置換2()
Dim cntRow As Long
Dim myVar As Variant
Dim myBook As Workbook
Dim mySht As Worksheet
Dim i As Long
'置換パターンを配列myVarに代入
With ThisWorkbook.Worksheets(1)
cntRow = .Range("A" & Rows.Count).End(xlUp).Row
myVar = .Range("A1:B" & cntRow).Value
End With
'対象ブックOpen
Set myBook = Workbooks.Open("E:\Office\Excel\Book1.xls")
'対象ブックのワークシートをループ
For Each mySht In myBook.Worksheets
For i = 1 To cntRow
If Len(myVar(i, 1)) > 0 Then
mySht.Cells.Replace _
What:=myVar(i, 1), _
Replacement:=myVar(i, 2), _
LookAt:=xlPart, SearchOrder:=xlByColumns
End If
Next i
Next
End Sub
No.2
- 回答日時:
for each objBook in Workbooks
for each objSheet in objBook.worksheets
処理
next
next
「for each」はinで指定した範囲内をぐるぐる回ります。
No.1
- 回答日時:
検索・置換にはブック単位というのが在る。
「検索場所」を「ブック」を択ぶ。そして置換操作をしてマクロの記録を採る。
ーー
それを
Set wb = Workbooks("2.xls").Worksheets("sheet2")
What:=wb.Cells(i, "A"),
Replacement:=wb.Cells(i, "B"),
の部分を変えたものが下記である。
ーーー
すると下記のようなコードになる。
Sub Macro1()
Set wb = Workbooks("2.xls").Worksheets("sheet2")
For i = 1 To 2
Cells.Replace What:=wb.Cells(i, "A"), Replacement:=wb.Cells(i, "B"), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
End Sub
ーー
Workbooks("2.xls")は開いておくこと。
Set wb = Workbooks("2.xls").Worksheets("sheet2")
のA1,B1には置換前と置換後の対応語句を入れておく。
A2,B2以下も同じ。
業が増えれば
Worksheets(1).Range("A65536").End(xlUp).Row
式で最下行を検出する。前にブック限定のコードwb.をつけることと
Worksheets(1).を2とかに変える。
Sheet2にしたのはこちらの都合。意味なし、ごめん。
上例では私の場合旨く行くようだ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?
-
ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
ゴリラ向け動画配信サイト「ウホウホ動画」にありがちなことを教えて下さい。
-
限定しりとり
文字数6文字以上の単語でしりとりしましょう
-
スタッフと宿泊客が全員斜め上を行くホテルのレビュー
スタッフも宿泊客も、一流を通り越して全員斜め上なホテルのレビューにありがちな内容を教えて下さい
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
別シートのリストから置換する方法
Excel(エクセル)
-
【Excel関数】特定の文字を別表のリストの文字に変換したい
Excel(エクセル)
-
Excel VBA リストに一致したデータの置換について
Visual Basic(VBA)
-
-
4
excel VBAで、置換した結果を別のセルに出力
Visual Basic(VBA)
-
5
excelマクロ ボタンを押して文字を置換する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マックOS Xのテキストエディタ...
-
ホームページビルダーのリンク...
-
カンマ区切り形式ではなく、セ...
-
WZ Editor10 の置換ダイアログ...
-
txtファイル内の指定の単語の数...
-
秀丸エディタ タブをカンマに...
-
エクセルでアルファベット5段階...
-
テキストエディタで4桁の数字の...
-
トロッファとは何ですか??
-
特定のぺージにアクセスしたら...
-
<IFRAME>でコンテンツ部分のみ...
-
リンクをアップデートするしな...
-
天然酵母(楽健寺)の入手方法
-
ホームページビルダーを使った...
-
【敬語】お掛けしてもよろしい...
-
構造体のテンプレートを適用し...
-
Yahooで検索すると「無題ドキュ...
-
TEX ページ番号について
-
ページの自動ジャンプを止めるには
-
隠しページ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切り形式ではなく、セ...
-
txtファイル内の指定の単語の数...
-
Ctrl+Hで置換にならない
-
ExcelのROUND関数を一括解除し...
-
エクセルでアルファベット5段階...
-
Wordチェックボックス作り方(...
-
秀丸エディタ タブをカンマに...
-
エクセルで置換リストを別ブッ...
-
エクセル 置換中の値の更新
-
入力済みの文字中にある句読点...
-
パワーポイントの置き換えマクロ
-
Wordで一括して改ページする方法
-
HTMLタグを一括消去する方法
-
アクセスのテーブル上でデータ...
-
文字列の<>で囲まれた文字列...
-
Accessで、特定の記号を削除し...
-
正規表現の置換で一部の文字列...
-
複数のhtmlファイルのソースを...
-
TeraPadに一括置換のプラグイン...
-
複数の単語を、「一括」で複数...
おすすめ情報