首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MS Project VBA:循环所有打开的.MPP,打印PDF

MS Project VBA是Microsoft Project的宏语言,可以通过编写VBA代码来自动化执行各种任务。在这个问答内容中,我们需要编写VBA代码来循环所有打开的.MPP文件,并将其打印为PDF文件。

首先,我们需要了解一些相关概念和步骤:

  1. MS Project:MS Project是一款由Microsoft开发的项目管理软件,用于计划、跟踪和分析项目进度和资源。
  2. VBA:VBA(Visual Basic for Applications)是一种基于Visual Basic的宏语言,用于在Microsoft Office应用程序中编写自定义宏和脚本。
  3. .MPP文件:.MPP是MS Project的项目文件格式,包含了项目的所有信息,如任务、资源、进度等。
  4. 打印PDF:将项目文件打印为PDF文件,可以方便地共享和存档项目信息。

下面是一个示例的VBA代码,用于循环所有打开的.MPP文件并打印为PDF:

代码语言:vba
复制
Sub PrintAllOpenMPPAsPDF()
    Dim Proj As Object
    Dim Tsk As Object
    Dim FileName As String
    
    ' 循环遍历所有打开的项目
    For Each Proj In Application.Projects
        ' 获取项目文件名
        FileName = Proj.FullName
        
        ' 检查文件扩展名是否为.MPP
        If Right(FileName, 4) = ".mpp" Then
            ' 打印为PDF
            Proj.ExportAsFixedFormat Type:=PjFixedFormatType.pjPDF, FileName:=Replace(FileName, ".mpp", ".pdf")
        End If
    Next Proj
    
    ' 释放资源
    Set Tsk = Nothing
    Set Proj = Nothing
    
    MsgBox "所有打开的.MPP文件已打印为PDF。"
End Sub

这段代码使用了MS Project的对象模型,通过遍历所有打开的项目,检查文件扩展名是否为.MPP,然后使用ExportAsFixedFormat方法将项目打印为PDF文件。最后,显示一个消息框提示操作完成。

这是一个简单的示例,你可以根据实际需求进行修改和扩展。如果需要更多关于MS Project VBA的信息,可以参考腾讯云的产品文档:MS Project VBA 开发指南

请注意,以上答案仅供参考,具体实现方式可能因环境和需求而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java 打印pdf_java打印pdf文件

2.3.2 先将word转化为pdf文件,然后打印pdf(lz使用) 三、总结 ---- 一、Java的打印简介 在我们的实际工作中,经常需要实现打印功能。...本次调研的打印对象主要是JPG,PDF和Word这三种常见文件格式。 二、Java打印实现 2.1 JPG图片文件格式打印实现 打印JPG图片格式的文件,本次采用的Java原生的打印方式。...= null) { // 查找并设置打印机 //获得本台电脑连接的所有打印机 PrintService[] printServices = PrinterJob.lookupPrintServices(...参数具体可参考https://msdn.microsoft.com/zh-cn/vba/excel-vba/articles/worksheets-printout-method-excel),第二种是将...= null) { // 查找并设置打印机 //获得本台电脑连接的所有打印机 PrintService[] printServices = PrinterJob.lookupPrintServices(

5.4K20
  • 红队 | CS加载宏上线初探

    在此之后所有自动保存的文档都会“感染”上这种宏病毒,如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上 ?...在Word和其他微软Office系列办公软件中,宏分为两种 内建宏:局部宏,位于文档中,对该文档有效,如文档打开(AutoOpen)、保存、打印、关闭等 全局宏:位于office模板中,为所有文档所共用...: EvilClippy是一款专用于创建恶意MS Office测试文档的跨平台安全工具,它可以隐藏VBA宏和VBA代码,并且可以对宏代码进行混淆处理以增加宏分析工具的分析难度。...关于EvilClippy的原理如下: EvilClippy使用了OpenMCDF库来修改MS Office的CFBF文件,并利用了MS-OVBA规范和特性。...每一个流模块中都会存在一个未被文档化的 PerformanceCache,其中包含了被编译后的 P-Code 代码,如果 _VBA_PROJECT 流中指定的 Office 版本与打开的 Office

    2.9K30

    Python自动化Word,使用Python-docx和pywin32

    假设有一个存储在Excel文件(或数据库)中的客户信息列表,处理过程如下所示: 1.为每个客户端自动生成MS Word发票 2.将Word文档转换为PDF格式 3.使用MS Outlook App向客户发送带有自定义问候语的...转换MS Word文档为PDF格式 有了发票的Word文档之后,让我们将其转换为PDF,因为这是商务文档的标准格式。 我们将使用pywin32/win32com库,这个库的安装名和库名不同。...要将Word(.docx)转换成PDF格式,实际上是使用win32com打开文档,然后将其另存为PDF格式。很简单! 下面的代码接受输入文件路径src,然后将pdf转换并保存到文件路径dst。...wdFormatPDF=17可能是VBA使用的约定。...把它们组合起来了,可以使用循环逐个发送发票,或使用其他流程生成发票。

    3.7K50

    Excel实战技巧47: 移除工作表分页线

    学习Excel技术,关注微信公众号: excelperfect 当我们对工作表进行打印预览或者打印操作后,工作表中会留下页面分界线,以指示工作表的分页情况,如下图1所示。 ?...但是,这样做了以后,当使用打印预览时,就看不到分页符了。 ? 图2 第3种:使用下面的VBA程序来除去分页线。...wks.DisplayPageBreaks = False Next wks Next wb Application.ScreenUpdating = True End Sub 该程序遍历所有打开的工作簿...代码中,外层的For Each循环遍历当前打开的所有工作簿,内层的For Each循环遍历工作簿中的工作表,然后将其DisplayPageBreaks属性设置为False,不显示分页线。...综合比较上述3种方法,个人觉得使用VBA代码更方便一些。

    1.4K20

    个人永久性免费-Excel催化剂功能第50波-批量打印、导出PDF、双面打印功能

    最后也一并增加一个估计使用场景已不多的Excel双面打印功能,代码不复杂,但直接使用也是很不错,省得还要到处找代码。操作步骤也简单,直接打开工作薄,激活要打印的工作表,然后点击按钮即可。 ?...准备要打印的文件 二、获取待打印的工作表清单 对应选择是打印还是导出PDF,使用不同的第1步,生成要打印或导出PDF的工作表清单。 若是导出PDF时的第1步,需额外一个步骤指定保存PDF位置。...使用的是非VBA的直接通过COM的方式读取文件,而是用NPOI的方式读取,速度性能在大量文件时,尤其可观,起码10倍以上的性能提升。 ? 导入PDF时的第1步,需额外一个步骤指定保存PDF位置 ?...任意组合工作表到不同PDF文件中 四、对打印的工作表进行打印设置,仅能批量所有工作表同一规则 点击第2步后,若原有的工作表有特殊的打印设置需求,可由此窗体进行控制,分别为打印方向、绽放设置、打印标题、是否只打印黑白效果...Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

    2.1K20

    VBA实用小程序72:遍历文件夹(和子文件夹)中的文件

    很多时候,我们都想要遍历文件夹中的每个文件,例如在工作表中列出所有文件名、对每个文件进行修改。VBA给我们提供了一些方式:(1)Dir函数;(2)File System Object。...使用Dir函数 Dir函数是一个内置的VBA函数,可用于可使用VBA的任何应用程序。...使用File System Object(FSO) File System Object(FSO)是一个单独的操作库,我们可以在VBA代码中使用它。有两种方法可以打开FSO库,即早期绑定或后期绑定。...图1 后期绑定 后期绑定不需要任何特定操作来启用FSO库,确保在VBA代码中需要时打开库。 遍历文件夹中所有文件 下面的示例代码将文件名打印到立即窗口,很容易修改这些代码以更适合你的具体情况。...Set FSOFolder =FSOLibrary.GetFolder(folderName) Set FSOFile = FSOFolder.Files '使用For Each循环遍历文件夹中的每个文件

    10.6K30

    Excel到底有多厉害?

    而且考虑到大部分普通群众是没有编程环境的(各种依赖各种包,各种OS各种编译环境,还有IDE),然而使用VBA,只需要打开装机自带的Office,然后按下Alt+F11就自动进入编程和执行环境;甚至可以更简单的通过录制宏来解决写程序的问题...我们4个咨询顾问的任务: 设定好KPI的基本格式,然后每个顾问负责几个部门,在Excel里不断修改KPI表格,打印出来后去各个当事人及其领导那里讨论并修改 每周把所有的Excel文件中的KPI表格归集在一起...之前我们全是凭借人力,每周由一个Analyst把所有最新的Excel文件收集在一起,然后挨个打开文件选中合适的Worksheet,选中区域设置好格式进行打印。...按责任人输出表格、所有延误任务的表格、所有需要资源重点投入任务的表格等等 ?...这个项目的程序量不小,近似于写了一个迷你版的Microsoft Project来进行项目管理。 ?

    3.6K71

    进击的恶意文档之 VBA 进阶之旅

    每一个流模块中都会存在一个未被文档化的 PerformanceCache,其中包含了被编译后的 P-Code 代码,如果 _VBA_PROJECT 流中指定的 Office 版本与打开的 Office...版本相同,则会忽略流模块中的源代码,去执行 P-Code 代码 官方文档解释 _VBA_PROJECT 流 ?...通过信息收集得知目标的 Office 版本,利用 VBA stomping 使宏被特定版本的 Office 打开时才会执行恶意行为宏代码,除此之外的 Office 版本打开时执行正常宏代码 目前 VBA...VBA 编辑器 ? 与原来的文档没有任何区别,接下来使用 Office2013(64 位)打开 ? VBA 编辑器 ?...可以看到流模块中反编译的源代码被替换成了伪造的 VBA 代码,下面使用工具进行分析 OleTools ? Olevba 识别出来了所有的宏并给出 VBA stomping 警告 Oledump ?

    4.6K30
    领券