[[20041213132219]] 『マクロのシート選択について』(yurika) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロのシート選択について』(yurika)

全シートに同じマクロを実行させるのに、普段

 Sub マクロ1()
 Sheets("シート名1").Select
 (共通のマクロ)
 End Sub

 Sub マクロ2()
 Sheets("シート名2").Select
 (共通のマクロ)
 End Sub
 ・
 ・
 ・
と、延々シート名を変更して作っているのですが、
50シート近くあるので、新しいマクロを作るとき、毎回大変です(シート名の入力が)。

上記のような方法を解消できる方法(全シートや、シート範囲の選択などをして実行できる方法など)はあるのでしょうか?
初心者のため、よくわかりません。
よろしくお願いします。

Excel2000、WindowsXP


 試してないので違ったらm(._.)m ペコッ

 Sub Test()
 For Each Sh In WorkSheets

 (共通のマクロ)

 Next Sh
 End Sub
 (川野鮎太郎)

 Sub マクロ1()
 Dim Ws As Worksheet
 For Each Ws In WorkSheets
 Ws.Select
 (共通のマクロ)
 Next Ws
 End Sub
全シートの場合は上記のように変数とForEachステートメントでやるのが一般的。
「WorkSheetsコレクションの各ワークシート一つ一つに対して
 Ws.Select以下の命令を実行しなさい」ってな具合に解釈します。
 
 Sub マクロ2()
 Dim Ws As Worksheet
 For Each Ws In ActiveWindow.SelectedSheets
 Ws.Activate
(共通のマクロ)
 Next Ws
 End Sub
選択されたシートに関しては上記のようになります。
ActiveWindowでやってますが、Windowsオブジェクトから取得するのがポイントのようです。
シートをActivateではなくて、Selectとすると、シートのワークグループは解除されます。
マクロ2は単独シート選択でも利用できるので、この二つあれば対応できるでしょう。
(みやほりん)

 川野鮎太郎さん、みやほりんさんありがとうございました。
 川野鮎太郎さんの方は、1つのシートの無限ループになってしまいました…。
 みやほりんさんの方は、うまくいきました。ありがとうございます!
(yurika)


 ぶは!無限ループ・・・(T▽T)アハハ!
 だって・・・共通のマクロの中身がわかんないんだもの・・・_/ ̄|○ il||li
 共通のマクロでSh. とシートを指定すれば良いはずですけどね。(^_^A;
 (川野鮎太郎)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.