SharePoint からワークブックをチェックアウトしてからワークブックを開く手順があります。ワークブックに必要なドキュメント プロパティが欠落している場合に実行時エラーが発生することに気付きました。そのため、次のようにエラー トラップを追加しました。
Public Function getWorkbook(bkPath As String) As Workbook
Dim bk As Workbook
Dim response As Boolean
secAutomation = Application.AutomationSecurity
On Error GoTo errHandler
If Workbooks.CanCheckOut(bkPath) Then
Workbooks.CheckOut bkPath
Application.AutomationSecurity = msoAutomationSecurityForceDisable
Application.EnableEvents = False
Application.DisplayAlerts = False
Set bk = Workbooks.Open(bkPath, False, False)
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.AutomationSecurity = secAutomation
If bk Is Nothing Then
response = dbo_global.setStatus("error", failedToOpen)
End If
Else
response = dbo_global.setStatus("error", checkedout)
Set bk = Nothing
End If
Set getWorkbook = bk
Exit Function
errHandler:
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.AutomationSecurity = secAutomation
If Not bk Is Nothing Then
bk.Close False
Set bk = Nothing
End If
response = dbo_global.setStatus("error", checkoutProblem)
End Function
dbo_global.setStatus()
アクセスエラーログにエントリを挿入する機能です。
でエラーが発生していますがWorkbooks.CheckOut bkPath
、ブロックに移動する代わりにerrHandler
、エラー メッセージ ボックスが表示されます。
Run-time error '-2147467259 (80004005)':
This document cannot be checked in.
errHandler
ワークブックが開いている場合は閉じ、チェックアウトを破棄することでエラーを処理したいのですが、コードでエラーをキャッチする方法がわかりません。
編集:それが役立つ場合、これはワークブックの上部に表示される警告メッセージです:
Required Properties
To save to the server, correct the invalid or missing required properties.