XLAファイルのバージョン管理を処理する別の方法は、ドキュメントのプロパティでカスタムプロパティを使用することです。http://support.microsoft.com/?kbid=224351で説明されているように、COMを使用してアクセスおよび操作できます。
これの利点は次のとおりです。
もう1つの方法は、バージョン番号(場合によっては他の構成データも)をXLAファイルのワークシートに保存することです。ワークシートはXLAのユーザーには表示されません。私が過去に使用した手法の1つは、アドインをXLSファイルとしてソース管理に保存し、ビルドプロセスの一部として(ビルド後のイベントなどで)、以下のスクリプトを実行して、でXLAに変換することです。出力ディレクトリ。このスクリプトは、保存する前にワークシートのバージョン番号を更新するように簡単に拡張できます。私の場合、ExcelアドインがVSTOを使用し、VisualStudioが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