Excelの簡単なVBAなんですが、以下のことができるように

簡単に記述をお願いできないでしょうか。
※時間をかければ自分でもできそうなのですが…

■条件
・ファイル数、ファイル名は任意
 ※10ファイル程度とそれほど多くないです。
・各ファイルのシート枚数、シート名も任意
 ※3~30シート程度のことが多いです。

■各ファイル、各シートに対し以下を全て実施
・非表示になっているシートがある場合は全て表示させる
・非表示になっている行、列がある場合は全て表示させる
・ウィンドウ枠が分割されている場合は解除
・オートフィルターがついている場合ははずす
・画面表示の倍率を75%に設定
・アクティブセルをA1にする

どうぞよろしくお願い致します。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2011/07/27 07:18:21
  • 終了:2011/07/27 23:09:29

ベストアンサー

id:TransFreeBSD No.1

TransFreeBSD回答回数657ベストアンサー獲得回数2632011/07/27 09:48:52

ポイント200pt
Sub SettingAll()
    ' マクロを張り付ける先は新規のブックでもどこでも良いです。
    ' ファイルの指定方法が無かったので指定したフォルダの1種類のファイルすべてとしました。
    ' フォルダの指定は"D:\example"を書き換えて行ってください。
    ' 拡張子を見て処理するしないを決めています。マクロ有効ブックや2003形式などは".xlsx"を".xlsm"や".xls"に書き換えてください。
    Const path = "D:\example"
    Const fileExp = ".xlsx"
    Dim f, w
    For Each f In CreateObject("Scripting.FileSystemObject").GetFolder(path).Files
        If (Right(f.Name, Len(fileExp)) = fileExp) Then
            With Workbooks.Open(f.path)
                .Activate
                    For Each w In Worksheets
                        w.Activate
                        ActiveSheet.Visible = True
                        With ActiveWindow
                            .SplitColumn = 0
                            .SplitRow = 0
                            .Zoom = 75
                        End With
                        w.Cells.EntireColumn.Hidden = False
                        w.Cells.EntireRow.Hidden = False
                        If w.AutoFilterMode Then
                            w.AutoFilter.Range.AutoFilter
                        End If
                        w.Range("A1").Select
                    Next w
                .Close SaveChanges:=True
            End With
        End If
    Next f
End Sub
id:miku1973

す、すごいです。

完璧でした。

とても自分では書けないような記述でしたので、質問させていただいてよかったです!

本当にありがとうございます!

2011/07/27 23:09:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません