[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイル名作成』(あや)
同じフォーマットで出来ている複数のエクセルファイルのファイル名を一度に変更するために、下記のようなマクロを作りました。(というか教えて頂きました)
ファイル名は、ファイルの中の特定セルから拾って定義づけしています。
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.