« 要素の取得 | トップページ | ディレクトリ内EXCELファイルの対象シート削除 »

ディレクトリ内EXCELファイルのヘッダ/フッタ一括変換

EXCEL / VBA / ヘッダ一括変換

今やってるプロジェクトで設計書がちょー大量にあってえげつない感じです。そして更にそれの印刷用のヘッダとかフッタが統一されてなくて、1つずつ手でなんて直してられっかばかやろう的な。

てことで、EXCELマクロで一気に更新!てことで作ってみました。VBAは初心者レベルなので色んな入門サイトさんのパーツ繋ぎ合わせ状態ですが、動いたのでまぁいいか!ということで。備忘録です。

    '================================
    ' ディレクトリ内の全ブックをループ
    '================================
    Dim myPath As String
    Dim myFName As String
    Dim myHeader As String
    Dim myOriginalBook As Workbook
   
    Set myOriginalBook = ActiveWorkbook
   
    ' ヘッダ部接頭語を取得
    myHeader = Worksheets(1).Range("HEADER_STR").Value
   
    ' パスを取得
    myPath = ActiveWorkbook.Path
    ' 自ファイルが存在しているディレクトリをカレントディレクトリに設定
    ChDir myPath
    myFName = Dir("*.xls")
    ' ファイルがなくなるまで検索
    Do Until myFName = ""
        If Not (myOriginalBook.Name = myFName) Then
            ' ファイルOPEN
            Workbooks.Open Filename:=myFName
   
            '================================
            ' 全シートのページ設定を変更する
            '================================
            Dim MySheet As Sheets
            Dim SCount As Integer
            Set MySheet = ActiveWorkbook.Sheets
            SCount = MySheet.Count
            ' 全ワークシートをループ
            For mycount = 1 To SCount
                ' mycount件めのシートをアクティブにする
                Worksheets(mycount).Activate
                With ActiveSheet.PageSetup
                    .LeftHeader = myHeader & Left(Right(ActiveWorkbook.Name, (Len(ActiveWorkbook.Name) - 5)), (Len(ActiveWorkbook.Name) - 9))
                    .CenterHeader = ""
                    .RightHeader = "&A"
                    .LeftFooter = ""
                    .CenterFooter = "&P / &N"
                    .RightFooter = ""
                    .FirstPageNumber = xlAutomatic
                End With
            Next mycount
   
            ' 一番先頭のシートをアクティブにする
            Worksheets(1).Activate
            
            ' ファイルを保存してCLOSE
            Workbooks(myFName).Close SaveChanges:=True
        End If

        ' 次のファイル名を設定
        myFName = Dir()
    Loop

…応用は色々出来そうなので、ひな形として残しておく。

|

« 要素の取得 | トップページ | ディレクトリ内EXCELファイルの対象シート削除 »

EXCEL」カテゴリの記事

コメント

私はSEなんですが、設計文書の納品・・・の都度、体裁整備のためエクセルと戦ったりしてます(苦笑)

VB組んで・・・とも考えてたんですが、工数がもったいなくツールを使って処理してます。

かなりマイナーっぽいですが・・・(笑)
http://www.partnersltd.jp/product/100/102.html

投稿: まさゆき | 2009年10月 7日 (水) 11時11分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: ディレクトリ内EXCELファイルのヘッダ/フッタ一括変換:

« 要素の取得 | トップページ | ディレクトリ内EXCELファイルの対象シート削除 »