改变。xla文件MSBuild
题
我试图创造一个建立脚本我目前的项目,该项目包括一个Excel程序。中包含一个VBProject与文件modGlobal变version_Number.这些需要改变每个建设。的确切步骤:
- 开XLA文件。
- 切换到VBEditor模式。(Alt F11)
- 开VBProject,进入一个密码。
- 开modGlobal文件。
- 变化的变量的默认值以目前的日期。
- 近距离和保存项目。
我在失去对如何实现自动化的过程。最好我可以想出一个excel宏或Auto-这剧本。我还可以写一个定义MSBuild的任务,但这可能让...棘手。没有任何人有任何其他建议吗?
解决方案
一个替代的方式处理的版本控制的一个XLA文件是采用一个定义属于文件的性质。你可以访问和操作使用COM如: http://support.microsoft.com/?kbid=224351.
优点是:
你可以检查的版本数目没有开XLA文件
你不需要Excel上你的建立机-只有DsoFile.dll 组件
另一个选择会将储存的版本号(其他可能的配置数据)的工作表上的XLA文件。工作表将看不到用户的XLA.一项技术我已在过去使用的是储存加以XLS文件来源的控制,然后作为建立过程的一部分(例如在后建立的事件)运行以下脚本,将其转换为一个XLA在输出的目录。这个脚本可以很容易地扩大到更新的版本号中的工作表之前的节省。在我的情况下,我这么做是因为我的Excel加在使用的应用程序级和Visual Studio不支持XLA文件。
'
' ConvertToXla.vbs
'
' VBScript to convert an Excel spreadsheet (.xls) into an Excel Add-In (.xla)
'
' The script takes two arguments:
'
' - the name of the input XLS file.
'
' - the name of the output XLA file.
'
Option Explicit
Dim nResult
On Error Resume Next
nResult = DoAction
If Err.Number <> 0 Then
Wscript.Echo Err.Description
Wscript.Quit 1
End If
Wscript.Quit nResult
Private Function DoAction()
Dim sInputFile, sOutputFile
Dim argNum, argCount: argCount = Wscript.Arguments.Count
If argCount < 2 Then
Err.Raise 1, "ConvertToXla.vbs", "Missing argument"
End If
sInputFile = WScript.Arguments(0)
sOutputFile = WScript.Arguments(1)
Dim xlApplication
Set xlApplication = WScript.CreateObject("Excel.Application")
On Error Resume Next
ConvertFileToXla xlApplication, sInputFile, sOutputFile
If Err.Number <> 0 Then
Dim nErrNumber
Dim sErrSource
Dim sErrDescription
nErrNumber = Err.Number
sErrSource = Err.Source
sErrDescription = Err.Description
xlApplication.Quit
Err.Raise nErrNumber, sErrSource, sErrDescription
Else
xlApplication.Quit
End If
End Function
Public Sub ConvertFileToXla(xlApplication, sInputFile, sOutputFile)
Dim xlAddIn
xlAddIn = 18 ' XlFileFormat.xlAddIn
Dim w
Set w = xlApplication.Workbooks.Open(sInputFile,,,,,,,,,True)
w.IsAddIn = True
w.SaveAs sOutputFile, xlAddIn
w.Close False
End Sub
其他提示
我不是100%确定如何做到底,你有什么要求。但是猜你的目标在心有几种可能性。
1) 让的一部分(或所有)的Globals一个单独的文本的文件分发。XLA我会用这个外部参考文献,如版本的你的余的应用程序。写这个在建造的时间和分发,并阅读载的XLA.
2) 我猜你写的版本主要成分(即:不XLA部分)应用程序。如果这是真的为什么储存这在你的XLA?为什么没有主要的应用程序的一部分,允许某些版本的XLA工作。1.1版的主要应用程序可以接受的呼吁版7.1-8.9的XLA.
3) 如果你只是寻找更新XLA所以它得到包括在您的版本控制系统或类似(我猜这里)也许只是触摸的文件,因此它看起来像它改变。
如果它版本的应用程序的其余部分,你控制我只是把它放在一个文本文件和分发,随着XLA.
你可以修改码在xla编程方式从内Excel。你会需要一个参考'Visual Basic应用程序的扩展..'组成部分。
例上 芯片皮尔逊的优良网站 应该让你开始。