Syncオブジェクト

Syncオブジェクトについての解説になります。

目次

Syncオブジェクトとは

SyncオブジェクトはMicrosoft Office Word 2003 Document オブジェクト、Microsoft Office Excel 2003 Workbook オブジェクト、および Microsoft Office PowerPoint 2003 Presentation オブジェクトの Sync プロパティは、Sync オブジェクトを返します。

Microsoft Windows SharePoint Services ドキュメント ワークスペースに格納されている共有ドキュメントのローカル コピーとサーバー コピーの同期を管理するには、Sync オブジェクトを使用します。同期の現在の状態について調べるには、Status プロパティを使用します。同期の状態を更新するには、GetUpdate メソッドを使用します。同期に関する追加情報を取得するには、LastSyncTime プロパティ、ErrorType プロパティ、および WorkspaceLastChangedBy プロパティを使用します。

共有ドキュメントのローカル コピーとサーバー コピーの間で存在し得る相違状態と競合状態の詳細については、「Status プロパティ」を参照してください。

ローカルでの変更内容をサーバーに保存するには、PutUpdate メソッドを使用します。ローカル コピーで何も変更していない場合、サーバーから最新のバージョンを取得するには、ドキュメントをいったん閉じて、開き直してください。ローカル コピーとサーバー コピーの相違を解決するには、ResolveConflict メソッドを使用します。または、OpenVersion メソッドを使用すると、現在開いているローカル バージョンのドキュメントと同時に、別のバージョンを開くことができます。

Sync オブジェクトの GetUpdate メソッド、PutUpdate メソッド、および ResolveConflict メソッドは、非同期に処理を実行するため、状態コードを返しません。Sync オブジェクトが提供する状態情報は、特定のイベントを通じて取得できます。このイベントは、アプリケーションによって異なります。

Word の場合は、Document オブジェクトの Sync イベント、または Application オブジェクトの DocumentSync イベントExcel の場合は、Workbook オブジェクトの Sync イベント、または Application オブジェクトの WorkbookSync イベントPowerPoint の場合は、Application オブジェクトの PresentationSync イベント

これらの Sync イベントは、次に示す msoSyncEventType クラスの定数の値を返します。

使用できる定数は、次に示す msoSyncEventType クラスの定数のいずれかです。 msoSyncEventDownloadInitiated (0) msoSyncEventDownloadSucceeded (1) msoSyncEventDownloadFailed (2) msoSyncEventUploadInitiated (3) msoSyncEventUploadSucceeded (4) msoSyncEventUploadFailed (5) msoSyncEventDownloadNoChange (6) msoSyncEventOffline (7)

次の使用例は、アクティブ ドキュメントの状態に応じて 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 = "変更のマージによって競合が解決されました。"
            Case msoSyncStatusError
                strStatus = "最後に発生したエラーの種類: " & objSync.ErrorType
            Case msoSyncStatusLatest
                strStatus = "ドキュメントのコピーは同期しています。"
            Case msoSyncStatusLocalChanges
                objSync.PutUpdate
                strStatus = "ローカルでの変更内容がサーバーに保存されました。"
            Case msoSyncStatusNewerAvailable
                objSync.GetUpdate
                strStatus = "ローカル コピーがサーバーの内容で更新されました。"
            Case msoSyncStatusSuspended
                objSync.Unsuspend
                strStatus = "同期が再開されました。"
        End Select
    Else
        strStatus = "共有ワークスペース ドキュメントではありません。"
    End If
    MsgBox strStatus, vbInformation + vbOKOnly, "同期情報"
    Set objSync = Nothing

シート見出しの色を設定するサンプルコード

こちらでは、シート見出しの色を設定するマクロになります。


Sub sample()

    Sheets("Sheet1").Tab.ColorIndex = 3

End Sub

実行結果

解説

こちらのマクロは、SyncオブジェクトのColorIndexプロパティを利用しています。

Syncオブジェクトの親オブジェクト一覧

親オブジェクト名内容
Chartオブジェクトブック内のグラフを表します。ChartObject オブジェクトに含まれている埋め込みグラフか、独立したグラフ シートのどちらかのグラフです。
Worksheetオブジェクト

Syncオブジェクトのプロパティ一覧

  • Syncオブジェクト(ColorIndexプロパティ)のプロパティ
Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

  • このエントリーをはてなブックマークに追加
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

スポンサー リンク

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

スポンサー リンク

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。