[[20110129101535]] 『ファイル名作成』(あや) ページの最後に飛ぶ

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

 

『ファイル名作成』(あや)

同じフォーマットで出来ている複数のエクセルファイルのファイル名を一度に変更するために、下記のようなマクロを作りました。(というか教えて頂きました)
ファイル名は、ファイルの中の特定セルから拾って定義づけしています。

ActiveWorkbook.SaveAs Filename:= _
Range("表紙!a1") & "-" & Range("表紙!b2") & " " & "体制表" & ".xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

End Sub

これを今は、複数あるファイルを1つずつ開き、マクロを実行してファイル名変更しているのですが、今後このファイルを数百単位で作業しないといけないので、いちいち1つずつファイルを開かなくてもマクロ実行できるようにしたいのです。例えば、Cというフォルダの中のエクセルは全てファイル名変更する、というような感じです。

どなたか教えていただけませんか。
宜しくお願いいたします。

WindowsXP Office2003


 こんな感じでしょうか。
 「D:\Data\変更前」と「D:\Data\変更後」を作って実行してください。
 「D:\Data\変更前」に入っているファイルを名前を変えて変更後フォルダに保存します。

 Const BeforePath = "D:\Data\変更前"
 Const AfterPath = "D:\Data\変更後\"

 Sub FileNameChange()
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")

    Application.ScreenUpdating = False  '// 画面更新を非表示:動作確認したいときはこの行を消してください。
    Dim fl
    For Each fl In fso.GetFolder(BeforePath).Files
        If InStr(LCase(fl.Name), ".xls") > 0 Then
            With Workbooks.Open(fl.Path)
                .SaveAs AfterPath & Range("表紙!a1") & "-" & Range("表紙!b2") & " " & "体制表" & ".xls"
                .Close
            End With
        End If
    Next
    Application.ScreenUpdating = True
 End Sub
 (Mook)


 (Mook)さん

ありがとうございます。早速やってみたら、コンパイルエラーでEndSubが必要です、と出てしまいます。

何故なんでしょうか

あや


 (Mook)さん

できました。

「Sub Macro1()」が先頭行に入っていたせいみたいです。

解決しました。有難うございました。


コメント返信:

[ 一覧(最新更新順) ]


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