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

解決


TT  2002-12-06 22:29:10  No: 105629

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


ODY  2002-12-07 02:08:38  No: 105630

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 19:22:20  No: 105631

お返事遅れて申し訳ありません。
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さんに教えて頂いた方が、全然スマートで良いです。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加