全てのワークシート上で同じ処理を一度に行うには?

解決


TT  2002-12-06 13:29:10  No: 105629  IP: [192.*.*.*]

ActiveSheetで行っている処理を、全てのSheetに反映させたいのですが、
どうすれば良いでしょうか?
Sheet数が多い事と、Sheet名がランダムな為、Sheetを指定しての処理は
避けたいと思っています。
ExcelVBAで作業してます。
よろしくお願い致します。

編集 削除
ODY  2002-12-06 17:08:38  No: 105630  IP: [192.*.*.*]

Dim ws As Variant

For Each ws In Sheets
    Sheets(ws.Name).Range("A1", "B2").Value = ""                
Next

For文の中身をTTさんの処理にすれば
これでできると思いますよ。
ちなみにこれは全ワークシートの
A1,A2,B1,B2のセルの値を初期化してます。

編集 削除
TT  2002-12-09 10:22:20  No: 105631  IP: [192.*.*.*]

お返事遅れて申し訳ありません。
ODYさん、ありがとうございました。

自分で強引な方法を考えた結果、
Sheetを1枚目から全て見て次のシートのA1セルに入力値があったら処理を実行する、
ということをしてみました。

sheetno = 0
Worksheets(1).Activate

Do Until Worksheets(sheetno + 1).Range("A1") = ""
sheetno = sheetno + 1
Worksheets(sheetno).Activate

loop

これで、全てのシートを一枚ずつアクティブにして、処理を実行させました。
データ量が多い為、処理が完了するまで1時間くらいかかりますが。。。苦笑
強引でしたよね。

ODYさんに教えて頂いた方が、全然スマートで良いです。
ありがとうございました。

編集 削除