本文链接:http://oicu.cc.blog.163.com/blog/static/12303947120103652947442/
下面这两个vba,设置 .Name 的预设值或者 BackupFileName 就可以了,比如加上修改
时间、当前时间Now(),或者其他字符,无论是直接运行宏还是“另存为”都可以达到
预设文件名的目的。
Option Explicit ' by oicu ' 2009/3/7 15:33:44 Sub FileSaveAs() Dim myDialog As Dialog Set myDialog = Word.Dialogs(wdDialogFileSaveAs) With myDialog .Name = "mydoc.doc" .Show End With End Sub |
Option Explicit Sub FileSaveAs() Dim FileName, BaseName, ExtensionName, BackupFileName Dim myDialog As Dialog FileName = ActiveDocument.Name BaseName = Left(FileName, InStrRev(FileName, ".") - 1) ExtensionName = Right(FileName, Len(FileName) - InStrRev(FileName, ".")) BackupFileName = BaseName & " - Backup" ' MsgBox CStr(ActiveDocument.FullName & Chr(13) & ActiveDocument.Path & "\" & BaseName) Set myDialog = Word.Dialogs(wdDialogFileSaveAs) With myDialog .Name = BackupFileName .Show End With End Sub |
Option Explicit On Error Resume Next |
2012/6/25 更新预设保存类型,Word 2010
Option Explicit ' by oicu ' 2012/6/25 22:54 Sub FileSaveAs() ' With Application.FileDialog(msoFileDialogSaveAs) '简单的保存对话框,只能show ' With Word.Dialogs(wdDialogFileSaveAs) '正常的另存为对话框 With Application.Dialogs(wdDialogFileSaveAs) '正常的另存为对话框 .Name = "MyPDF" ' 文件名 .Format = 17 ' 保存类型 .Show End With End Sub |
列一下常用的Format类型:
0 —— Word 97-2003文档
1 —— Word 97-2003模版
3、4、5、7 —— 纯文本
6 —— RTF格式
8 —— 网页
9、16 —— 单个文件网页
10 —— 筛选过的网页
11 —— Word 2003 XML文档
12 —— Word文档
13 —— 启用宏的Word文档
14 —— Word模板
15 —— 启用宏的Word模板
17 —— PDF
除了设置对话框,也可以直接输出,以下是直接录制的、另存为PDF文件的宏:
Sub SaveAsPDF() ActiveDocument.ExportAsFixedFormat OutputFileName:= _ "C:\Users\Admin\Desktop\MyPDF.pdf", ExportFormat:= _ wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _ wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False ChangeFileOpenDirectory "C:\Users\Admin\Desktop\" End Sub |
打开对话框也可以预设文件筛选器,Application.FileDialog(msoFileDialogOpen)可以
Filter.Clear和Add,但msoFileDialogSaveAs会出现不支持的错误。
Sub TestFileOpen() With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel File", "*.xls" .Filters.Add "All File", "*.*" .Show End With End Sub |
评论