dポイントプレゼントキャンペーン実施中!

Dim FolderName As String '作成したいフォルダパスを格納'
FolderName = "C:\VBA_Sample\AAA"

If Dir(FolderName, vbDirectory) = "" Then '同名のフォルダがない場合フォルダを作成'
MkDir FolderName
Else
MsgBox "すでに同名のフォルダが存在しています。"
End If
Activeworkbook saveas filename:=""←ここに新しく作成した同じフォルダ名で保存
fileformat:= xlworkbooknormal
という感じで一括処理できますでしょぅか

A 回答 (2件)

filename:=FolderName & "\" & Dir(FolderName, vbDirectory) & ".拡張子

指定"
    • good
    • 1

「フォルダーの有無確認」「フォルダー作成」「パス文字の連結」「パス文字の最下層の要素を取り出す」


質問内容にある要素のすべての機能を持っているので FileSystemObject を使ってみました。

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

Dim FolderName as String
FolderName = "E:\VBA_Sample\AAA"

If Not (fso.FolderExists(FolderName)) Then
 fso.CreateFolder FolderName
End If

ActiveWorkbook.SaveAs Filename:= fso.BuildPath(FolderName, fso.GetBaseName(FolderName))

保存対象の Excel ファイルがマクロを含んでいなければ、拡張子はデフォルトの .xlsx が勝手に付きます。
FileSystemObject (というかその親の Microsoft Scripting Runtime) は Windows 標準の機能ですし、VBA を使うのであれば FileSystemObject は覚えていて損はないです。
    • good
    • 0
この回答へのお礼

FileSystemObjectうまくいきました。
有難うございました。

お礼日時:2018/03/27 07:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!