[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロのシート選択について』(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.