同步處理物件 (Office)
Microsoft Word、 Microsoft Excel 中的 Workbook 物件以及 Microsoft PowerPoint 中的 Presentation 物件中的 Document 物件的 Sync 屬性都會傳回 Sync 物件。
注意
自 Microsoft Office 2010 起,這個物件或成員已被取代且不應該再使用。
使用 Sync 物件來管理 SharePoint 網站上所儲存共用檔本機和伺服器複本的同步處理。 Status 屬性會傳回目前的同步處理狀態的重要資訊。 使用 GetUpdate 方法來重新整理同步狀態。 使用在 LastSyncTime 、 ErrorType 、 和 WorkspaceLastChangedBy 屬性可傳回額外的資訊。
如需共用檔本機和伺服器複本之間可能存在的差異和衝突的其他資訊,請參閱 Status 屬性。
使用 PutUpdate 方法本機變更儲存至伺服器。 關閉並重新開啟文件擷取的最新版本的伺服器時沒有本機有所變更。 使用以解決差異的本機複本與伺服器複本, ResolveConflict 方法或 OpenVersion 方法來開啟文件的目前開啟的本機版本不同版本。
Sync物件的GetUpdate、PutUpdate和ResolveConflict方法不會傳回狀態碼,因為它們會以非同步方式完成其工作。 Sync 物件會提供重要的狀態資訊透過單一的事件,以開發人員可以透過下列應用程式特定事件來存取:
在 Word 中,透過Document物件的Sync事件或Application物件的DocumentSync事件。
在 Excel 中,透過Workbook物件的Sync事件或Application物件的WorkbookSync事件。
在 Microsoft PowerPoint 中,透過 Application物件的PresentationSync事件。
上述的 Sync 事件會傳回 msoSyncEventType 值。
Sync 物件模型提供是否共用且啟用或停用使用中文件上同步處理。 文件 、 活頁簿 及 簡報 物件的 Sync 屬性不會傳回 Nothing 時將使用中文件未共用或未啟用同步處理。 使用 Status 屬性來判斷是否為共用文件和是否啟用同步處理。
並非所有文件同步處理問題引發可截獲的執行階段錯誤。 使用 Sync 物件的方法之後,最好檢查 Status 屬性;如果 Status 屬性是 msoSyncStatusError,請檢查 ErrorType 屬性,以取得已發生之錯誤類型的其他資訊。
在許多情況下,若要解決錯誤條件的最佳方式是呼叫 GetUpdate 方法。 例如,如果 PutUpdate 錯誤情況導致呼叫、 GetUpdate 呼叫會重設狀態為 msoSyncStatusLocalChanges 。
下列範例會說明 Sync 物件狀態將使用中文件為基礎的不同方法。
Dim objSync As Office.Sync
Dim strStatus As String
Set objSync = ActiveDocument.Sync
If objSync.Status > msoSyncStatusNoSharedWorkspace Then
Select Case objSync.Status
Case msoSyncStatusConflict
objSync.ResolveConflict msoSyncConflictMerge
ActiveDocument.Save
objSync.ResolveConflict msoSyncConflictClientWins
strStatus = "Conflict resolved by merging changes."
Case msoSyncStatusError
strStatus = "Last error type: " & objSync.ErrorType
Case msoSyncStatusLatest
strStatus = "Document copies already in sync."
Case msoSyncStatusLocalChanges
objSync.PutUpdate
strStatus = "Local changes saved to server."
Case msoSyncStatusNewerAvailable
objSync.GetUpdate
strStatus = "Local copy updated from server."
Case msoSyncStatusSuspended
objSync.Unsuspend
strStatus = "Synchronization resumed."
End Select
Else
strStatus = "Not a shared workspace document."
End If
MsgBox strStatus, vbInformation + vbOKOnly, "Sync Information"
Set objSync = Nothing
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。