注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

预设Word另存对话框里的文件名及保存类型  

2010-04-06 17:29:47|  分类: Office |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文链接: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

Sub FileSaveAs()
' by oicu
' 2010/6/30 1:45
' 另存文件时,在末尾加上文件编辑日期及时间。
' "另存为"的默认快捷键: F12

    On Error Resume Next
    Dim FileName, BaseName, ExtensionName, BackupFileName, BaseName2, n
    Dim myDialog As Dialog
    FileName = ActiveDocument.Name
    BaseName = Left(FileName, InStrRev(FileName, ".") - 1)
    ExtensionName = Right(FileName, Len(FileName) - InStrRev(FileName, "."))

    n = InStr(BaseName, "_")
    If n = 0 Then
        BaseName2 = BaseName
    Else
        BaseName2 = Left(BaseName, n - 1)
    End If

    BackupFileName = BaseName2 & "_" & Date$ & "_" & Replace(Time$, ":", "-")

    Set myDialog = Word.Dialogs(wdDialogFileSaveAs)
    With myDialog
        .Name = BackupFileName
        .Show
    End With
End Sub

 


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

 

 

  评论这张
 
阅读(1384)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017