(保存先を指定して)名前をつけて保存する4つの方法
1.名前をつけてファイルに保存する方法
SaveAsメソッドを使用することで、現在のブックを新しいファイル名で保存することができます。以下は、SaveAsメソッドを使用してブックを保存する例です。
ActiveWorkbook.SaveAs Filename:="C:\Users------パスを指定-------------.xlsx"
2.GetSaveAsFilename関数を使用する方法
GetSaveAsFilename関数を使用することで、保存先のファイル名をダイアログボックスから選択することができます。以下は、GetSaveAsFilename関数を使用してブックを保存する例です。
Dim fileName As String
fileName = Application.GetSaveAsFilename(InitialFileName:="newfile.xlsx", _
FileFilter:="Excel Workbook (*.xlsx), *.xlsx")
If fileName <> False Then
ActiveWorkbook.SaveAs Filename:=fileName
End If
3.FileDialogオブジェクトを使用する方法
FileDialogオブジェクトを使用することで、保存先のファイル名をダイアログボックスから選択することができます。以下は、FileDialogオブジェクトを使用してブックを保存する例です。
Dim fileDialog As FileDialog
Set fileDialog = Application.FileDialog(msoFileDialogSaveAs)
fileDialog.InitialFileName = "newfile.xlsx"
fileDialog.Filters.Clear
fileDialog.Filters.Add "Excel Workbook", "*.xlsx"
If fileDialog.Show = -1 Then
ActiveWorkbook.SaveAs Filename:=fileDialog.SelectedItems(1)
End If
4.FileSystemObjectを使用する方法
FileSystemObjectを使用することで、ファイルの保存先やファイル名を直接指定することができます。以下は、FileSystemObjectを使用してブックを保存する例です。
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim fileName As String
fileName = "C:\Users\username\Documents\newfile.xlsx"
If Not fso.FileExists(fileName) Then
ActiveWorkbook.SaveAs Filename:=fileName
End If
アクティブシートを名前を付けて保存
*ハイライトの箇所を修正して利用してください
*保存先:使用しているファイルと同じ場所
Sub アクティブシートのみ名前をつけて保存()
ThisWorkbook.ActiveSheet.Copy
A = ThisWorkbook.path & "\" & "保存_" & VBA.Format(Now, "yyyymmdd " & "hh-mm-ss")
ActiveWorkbook.SaveAs FileName:=A
Application.CutCopyMode = False
ActiveWorkbook.Close
MsgBox "完了"
End Sub
解説
- 3行目:アクティブシートをコピー
- 4行目:現在のファイルと同じ保存先に「保存」+日付の名前をつけて保存
*任意のファイル名に変更して利用してください - 8行目:ファイルを閉じる
保存先を指定してアクティブシートのみ名前を付けて保存
*指定する保存先のフォルダに名前をつけて保存
⇒”C:\ ~~ ¥”
Sub 特定シートだけ別のフォルダに保存()
ThisWorkbook.ActiveSheet.Copy
ActiveWorkbook.SaveAs _
FileName:="C:(ここにファイルパスを記入)\" & "保存_" & VBA.Format(Now, "yyyymmdd " & "hh-mm-ss"), _
FileFormat:=xlOpenXMLWorkbook
MsgBox "完了"
End Sub
解説
- 5行目:保存先のPassを記入
ダイアログ開いてアクティブシートを名前をつけて保存
*保存先:ダイアログを開いて指定
Sub ファイル保存_ダイアログ開く()
Dim FileName As Variant
FileName = Application.GetSaveAsFilename( _
InitialFileName:="規定の名称.xlsx", _
FileFilter:="Excel2003以前,*.xls,Excelファイル,*.xlsx,Excelマクロブック,*.xlsm", _
FilterIndex:=2)
If FileName = False Then
Exit Sub
End If
ActiveWorkbook.SaveAs FileName
MsgBox "完了"
End Sub
・FileName = Application.GetSaveAsFilename(InitialFileName:=”規定の名称.xlsx”,
FileFilter:=”Excelファイル,*.xlsx”)
ダイアログ開いてアクティブシートを名前をつけて保存 Part2
Sub SaveActiveSheetAs()
Dim fileName As Variant
fileName = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name, _
FileFilter:="Excel Files (*.xlsx), *.xlsx")
If fileName <> False Then
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs fileName
.Close False
End With
End If
End Sub
コメント