グループ化したシートを編集するExcelマクロ。
製品名:Office製品/Excel/2003
現象:知りたい/プログラミング
懸賞ポイントが設定されています。
300
一つのブック内に複数のシートがあって、その中から何かしらの条件にあったシート名を選択してグループ化(?)するコードとして以下のコードを利用しています。
以下は、シート名が ) で終わるシートを選択しています。
Sub シート選択()
flg = False
For i = 1 To Sheets.Count
shtmei = Sheets(i).Name
If Right(shtmei, 1) = ")" Then
If flg = False Then
Sheets(i).Select
flg = True
Else
Sheets(i).Select Replace:=False
End If
End If
Next
End Sub
このコードで選択された(作業グループになった)シートを対象に編集すると、できることとできないことが出てしまっています。
シート全体の数式をコピーして値貼り付け、選択されたシートごとコピーや印刷等はできるのですが、
どうも「特定のセル範囲を対象にした動作」(例:セルの塗りつぶし、列幅をAutoFit、特定列を削除する等)は、その時アクティブになってるシートにだけにしか反映されません。
Sheets(Array("Sheet1 (2)", "Sheet2 (2)", "Sheet3 (2)")).Select のように書けば、そう言った動作もできましたが、
できれば先のコードを生かして、シート名で都度判断して作業グループにする方法を使いたいと思っています。
このようなケースでの方法が何かありましたら、是非ご教示くださいますようよろしくお願い致します。