ブックが共有モードか確認する(MultiUserEditing プロパティ)
ブックが共有モードか確認する(MultiUserEditing プロパティ)
共有モードでブックを開くと、Workbook オブジェクト の MultiUserEditing プロパティ が True を返します。排他モードで開くと MultiUserEditing プロパティ が False を返します。
object.MultiUserEditing
引数・戻り値
- object ・・・ 対象となる Workbook オブジェクトを指定します。
- 戻り値 ・・・ ブール型(Boolean)の値を使用します。共有モードの場合、True を、排他モードの場合、False を返します。
- object ・・・ 対象となる Workbook オブジェクトを指定します。
- 戻り値 ・・・ ブール型(Boolean)の値を使用します。共有モードの場合、True を、排他モードの場合、False を返します。
共有モードと排他モードの切り替え
共有モードで開いたブックを排他モードに切り替えには、ExclusiveAccess メソッド を使用します。また、排他モードで開いたブックを共有ファイルとして保存するには、SaveAs メソッド を使用します。
ExclusiveAccess メソッド
object.ExclusiveAccess
引数・戻り値
- object ・・・ 対象となる Workbook オブジェクトを指定します。
ExclusiveAccess メソッドを実行すると、実行したユーザーによるブックの変更内容はすべて保存されますが、同じブックを開いている他のユーザーは、それらの変更内容を別のファイルとして保存する必要があります。
指定したブックが共有ファイルとして開かれていない場合、このメソッドは失敗します。
SaveAs メソッド
【書式】
object.SaveAs ( filename, accessmode )
引数・戻り値
- object ・・・ 対象となる Workbook オブジェクトを指定します。
- filename ・・・ 保存するブックの名前を指定します。拡張子を省略すると Excel によって自動的に付加されます。また、完全パスを含めることもできます。完全パスを含めない場合、カレントフォルダに保存されます。
- accessmode ・・・ ファイルへのアクセス方法を表す XlSaveAsAccessMode 列挙型 の定数またはその値を指定します。
定数
値
内容
xlNoChange
1
アクセスモードを変更しません(既定値)
xlShared
2
共有モード
xlExclusive
3
排他モード
SaveAs メソッド の詳細に関しては、ブックを別名で保存(SaveAs メソッド) を参照してください。
- object ・・・ 対象となる Workbook オブジェクトを指定します。
ExclusiveAccess メソッドを実行すると、実行したユーザーによるブックの変更内容はすべて保存されますが、同じブックを開いている他のユーザーは、それらの変更内容を別のファイルとして保存する必要があります。
指定したブックが共有ファイルとして開かれていない場合、このメソッドは失敗します。
object.SaveAs ( filename, accessmode )
- object ・・・ 対象となる Workbook オブジェクトを指定します。
- filename ・・・ 保存するブックの名前を指定します。拡張子を省略すると Excel によって自動的に付加されます。また、完全パスを含めることもできます。完全パスを含めない場合、カレントフォルダに保存されます。
- accessmode ・・・ ファイルへのアクセス方法を表す XlSaveAsAccessMode 列挙型 の定数またはその値を指定します。
定数 値 内容 xlNoChange 1 アクセスモードを変更しません(既定値) xlShared 2 共有モード xlExclusive 3 排他モード
SaveAs メソッド の詳細に関しては、ブックを別名で保存(SaveAs メソッド) を参照してください。
MultiUserEditing プロパティ 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Sub Sample_MultiUserEditing() 'ブックの共有モードと排他モードを切り替える Dim FileName As String Dim BookState As String Dim w As Workbook FileName = "C:\Documents\test01.xlsx" Set w = Workbooks.Open(FileName) '確認メッセージを非表示にする Application.DisplayAlerts = False If w.MultiUserEditing = False Then '排他モードで開いた場合、共有モードで保存 w.SaveAs FileName:=w.FullName, AccessMode:=xlShared BookState = "共有モード" Else '共有モードで開いた場合、排他モードで保存 w.ExclusiveAccess w.Save BookState = "排他モード" End If '確認メッセージを表示する Application.DisplayAlerts = True '現在のブックの状態 MsgBox w.Name & "を " & BookState & " に変更しました。" 'ブックを閉じる w.Close Set w = Nothing End Sub |
実行結果
関連記事
-
並べて比較(CompareSideBySideWith,SyncScrollingSideBySide,BreakSideBySide)
並べて比較(CompareSideBySideWith メソッド) Compar …
-
選択されているシートを参照する(SelectedSheets プロパティ)
SelectedSheets プロパティ 選択されているすべてのシートをあらわす …
-
最近使用したファイル(RecentFile オブジェクト,RecentFiles コレクション)
最近使用したファイル(RecentFile オブジェクト,RecentFiles …
-
印刷・印刷プレビュー(PrintOut メソッド、PrintPreview メソッド)
PrintOut メソッド 印刷するには、PrintOut メソッド を使用しま …
-
ワークシートをアクティブにする・選択する(Activate, Select)
Activate メソッド・Select メソッド Activate メソッドは …
-
ブックのファイル形式を調べる(FileFormat プロパティ)
ブックのファイル形式を調べる(FileFormat プロパティ) 指定したブック …
-
印刷設定(ヘッダーに文字列を指定)LeftHeader,CenterHeader,RightHeader
PageSetup.LeftHeader プロパティ PageSetup.Lef …
-
ページ数に合わせて印刷(FitToPagesTall, FitToPagesWide)
PageSetup.FitToPagesTall プロパティ PageSetup …
-
再計算(Calculation, EnableCalculation, Calculate)
ワークブックやシートの再計算 通常、Excel では、自動的に再計算が行われる設 …
-
印刷の先頭のページ番号を設定(PageSetup.FirstPageNumber プロパティ)
PageSetup.FirstPageNumber プロパティ PageSetu …