使用 VBA 将文件添加到 MS-Project 任务备注字段
Add file to MS-Project task note field with VBA
我试图通过将信息添加到任务的注释字段中(因为普通自定义文本字段仅限于255 个字符),但在保持格式方面存在问题。注释字段还允许添加任何类型的文件(例如 Word 或 Excel)作为对象,这对我来说可能是一个很好的解决方案,但是当使用 MS 项目宏记录器时,添加对象的操作不会被记录下来.
因此我的问题是:在 VBA 中是否有可能将文件添加到任务的备注字段并稍后检索它?
如有任何帮助,我们将不胜感激。
最好的,
哈拉尔德
我不确定是否有办法在代码中做到这一点。似乎 Notes property of the task object only accepts string data. Even if there is a way to attach a file as the note, I'm going to highly advise against it because it can cause your project file to become corrupt. I'm including an image from this article:
作为长期使用 MS Project 的人,我亲眼目睹了这种损坏的发生,这确实是您的项目文件可能发生的最糟糕的事情。更好的替代方法是将这些文件放在共享网络位置,并仅将 路径 引用到您想要的文件,您可以在 VBA 代码中通过注释 属性 的任务。
非常感谢您的快速响应和警告!我做了更多的挖掘,我有理由相信 VBA 无法完成。
我现在所做的是将一个类似于 HTML 的字符串放入注释中,其中包含来自 Excel 的关于我的可交付成果详细信息的数据。
<DELIVERABLEINFO><OBJECTIVE>The Project Change Management Plan defines and documents the change process for a project.</OBJECTIVE><TOC>to be defined</TOC><INFO>to be defined</INFO></DELIVERABLEINFO>
稍后从 MS-Project 生成 Excel 文件时,我会解析字符串并再次填写特定字段。效果很好,但我发现虽然字符串可以直接从 Excel 单元格内容生成,但是当把它从 Note 放回 Excel 文件时,我需要用下面的方法处理它再次显示换行符的功能。
Function StringFromNoteToExcel(strNote As Variant) As String
On Error GoTo StringFromNoteToExcel_Error
StringFromNoteToExcel = Trim(Replace(strNote, vbCr, vbLf))
StringFromNoteToExcel = Replace(StringFromNoteToExcel, vbVerticalTab, vbLf)
StringFromNoteToExcel = Replace(StringFromNoteToExcel, vbTab, vbLf)
On Error GoTo 0
Exit Function
StringFromNoteToExcel_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure StringFromNoteToExcel, line " & Erl & "."
End Function
它不允许任何花哨的格式,但至少保留了结构,您仍然可以在 HTML 之外添加注释,就像我添加的块一样。
再次感谢!
哈拉尔德
我试图通过将信息添加到任务的注释字段中(因为普通自定义文本字段仅限于255 个字符),但在保持格式方面存在问题。注释字段还允许添加任何类型的文件(例如 Word 或 Excel)作为对象,这对我来说可能是一个很好的解决方案,但是当使用 MS 项目宏记录器时,添加对象的操作不会被记录下来.
因此我的问题是:在 VBA 中是否有可能将文件添加到任务的备注字段并稍后检索它?
如有任何帮助,我们将不胜感激。
最好的, 哈拉尔德
我不确定是否有办法在代码中做到这一点。似乎 Notes property of the task object only accepts string data. Even if there is a way to attach a file as the note, I'm going to highly advise against it because it can cause your project file to become corrupt. I'm including an image from this article:
非常感谢您的快速响应和警告!我做了更多的挖掘,我有理由相信 VBA 无法完成。 我现在所做的是将一个类似于 HTML 的字符串放入注释中,其中包含来自 Excel 的关于我的可交付成果详细信息的数据。
<DELIVERABLEINFO><OBJECTIVE>The Project Change Management Plan defines and documents the change process for a project.</OBJECTIVE><TOC>to be defined</TOC><INFO>to be defined</INFO></DELIVERABLEINFO>
稍后从 MS-Project 生成 Excel 文件时,我会解析字符串并再次填写特定字段。效果很好,但我发现虽然字符串可以直接从 Excel 单元格内容生成,但是当把它从 Note 放回 Excel 文件时,我需要用下面的方法处理它再次显示换行符的功能。
Function StringFromNoteToExcel(strNote As Variant) As String
On Error GoTo StringFromNoteToExcel_Error
StringFromNoteToExcel = Trim(Replace(strNote, vbCr, vbLf))
StringFromNoteToExcel = Replace(StringFromNoteToExcel, vbVerticalTab, vbLf)
StringFromNoteToExcel = Replace(StringFromNoteToExcel, vbTab, vbLf)
On Error GoTo 0
Exit Function
StringFromNoteToExcel_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure StringFromNoteToExcel, line " & Erl & "."
End Function
它不允许任何花哨的格式,但至少保留了结构,您仍然可以在 HTML 之外添加注释,就像我添加的块一样。
再次感谢! 哈拉尔德