[[20111103170920]] 『特定のシートを除くマクロ実行』(龍) ページの最後に飛ぶ

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

 

『特定のシートを除くマクロ実行』(龍)

Sub テスト()

  Dim objSheet As Object
  For Each objSheet In ActiveWorkbook.Worksheets
    objSheet.Activate
Range("D2").Select
    ActiveWindow.FreezePanes = True
Range("A1:AG1").Select
    Selection.AutoFilter
Range("$A$1:$AG$10000").AutoFilter Field:=21, Criteria1:="<>0", _
        Operator:=xlAnd
Next
End Sub

 このようなマクロを作成しましたが、
 SHEET(3)だけは、このマクロを適応させたくありません。
 特定のシートSHEET(3)を除いてマクロ実行というコードをどのように書けばよいか
 ご教授いただきたく、宜しくお願いします。

EXCEL2007
VISTA


 Sub テスト()

     Dim objSheet As Worksheet

     For Each objSheet In ActiveWorkbook.Worksheets
         If objSheet.Name <> "SHEET3" Then
            objSheet.Activate
            Range("D2").Select
            ActiveWindow.FreezePanes = True
            Range("A1:AG1").Select
            Selection.AutoFilter
            Range("$A$1:$AG$10000").AutoFilter Field:=21, Criteria1:="<>0", _
                  Operator:=xlAnd
         End If
     Next

 End Sub

 でどうでしょうか?

 (se_9)

 (se_9)様 
 ありがとうございます。
 上手くいきました。勉強になりました。
 下記のように既にIF構文があるときは、どのように
  If objSheet.Name <> "SHEET3" Thenを差し込めば良いでしょうか
 基礎がないので応用が利きません・・・
 お手数ですが、どなたかご教授いただければ幸甚です。

Sub マクロ()

   Dim objSheet As Worksheet
    Dim myRng    As Range
    For Each objSheet In ActiveWorkbook.Worksheets
      With objSheet.Columns("AE").SpecialCells(xlCellTypeVisible)
        Set myRng = .Find("", .Cells(1), xlValues, xlPart, xlByRows, xlNext)
        If myRng.Row = 2 Then
          myRng.Value = "注残0"
        Else
          myRng.Formula = "=SUBTOTAL(109,AE2:" & myRng.Offset(-1).Address(False, False) & ")"
        End If
      End With
      With myRng
        .HorizontalAlignment = xlCenter
        .Style = "Comma [0]"
        .Font.Bold = True
    End With
    Next
  End Sub

(龍)


 現在のFor/Next内部のコード全体を、se_9さんの回答のIf文で囲む。

 Sub マクロ()

    Dim objSheet As Worksheet
    Dim myRng    As Range
    For Each objSheet In ActiveWorkbook.Worksheets
        If objSheet.Name <> "SHEET3" Then
            With objSheet.Columns("AE").SpecialCells(xlCellTypeVisible)
                Set myRng = .Find("", .Cells(1), xlValues, xlPart, xlByRows, xlNext)
                If myRng.Row = 2 Then
                    myRng.Value = "注残0"
                Else
                    myRng.Formula = "=SUBTOTAL(109,AE2:" & myRng.Offset(-1).Address(False, False) & ")"
                End If
            End With
            With myRng
                .HorizontalAlignment = xlCenter
                .Style = "Comma [0]"
                .Font.Bold = True
            End With
        End If
    Next

 End Sub

 (ぶらっと)

ぶらっとさん

 ありがとうございました。
 end ifの置き方がどうしても分かりませんでしたので、
  勉強になりました。

 (龍)

コメント返信:

[ 一覧(最新更新順) ]


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