首页
学习
活动
专区
工具
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.2K20

红队 | CS加载宏上线初探

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

2.7K30

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.5K50

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.3K20

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

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

2K20

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循环遍历文件夹中每个文件

9.9K30

进击恶意文档之 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.5K30

Excel到底有多厉害?

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

3.5K71

Excel VBA编程教程(基础一)

step two 打开 VBA 编辑器 通过功能区「开发工具 → 代码→Visual Basic」或快捷键 Alt + F11 打开 VBA 编辑器。详细步骤参考这篇文章。...新插入模块默认名称是,模块 x,本例中是模块1。在属性窗口,可以修改模块名称。 step four 打开模块 双击上一步插入模块1,在右侧代码窗口区域里,将打开模块1代码编辑器。...VBA 工程:显示当前 VBA 工程包含所有对象。通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作表对象、模块等。 属性窗口:查看和设置选中对象属性窗口。...代码编辑窗口:实际编写代码位置。编写、修改、保存代码,都在这里进行。 立即窗口:代码运行过程中,打印内容,在立即窗口中显示。一般用于调试代码。...当多个工作簿同时打开时,他们公用同一个 VBA 编辑器,VBA 工程界面显示所有VBA 工程。

11.1K22
领券