Excelでは、_ExcelTips_の他の問題で説明されているように、ブックに加えられた変更を追跡できます。変更の追跡をオンにすると、Excelではブックを共有する必要があります。結局のところ、変更の追跡は、複数のユーザーが同じブックにアクセスして変更する環境で使用することを目的としています。

トラックの変更をオフにして、ワークブックに記載されないようにすることができます。オフにすると、Excelはブックの共有も停止することを想定しているため、共有は自動的にオフになります。追跡せずに共有を継続したい場合は、オプションが何であるか疑問に思うかもしれません。

残念ながら、Excelは、ブックの共有と変更の追跡に関してはかなり混乱しています。 2つの機能は互いに密接に関連しています。

  • まったく新しいブックから始めて、それを共有することを選択した場合([ツール] | [ブックの共有])、Excelでは他のユーザーがブックにアクセスして変更することができます。ただし、この時点ではトラックの変更はオンになっていません。

  • 新しいブックから始めて、変更を追跡することを選択した場合([ツール]、[変更の追跡]、[変更の強調表示])、Excelは自動的にブックを共有し、変更の追跡をオンにします。

  • 共有ワークブックから始めて、[ツール]、[変更の追跡| [変更を強調表示]、[編集中に変更を追跡する]チェックボックスがオンになっています。これにより、ブックが共有されているという理由だけで、そのトラックの変更もオンになっていると思われるかもしれません。そうではありません。 (ワークブックに変更がマークされていないため、これを確認できます。)ダイアログボックスで[OK]をクリックすると、有効になります。 [キャンセル]をクリックすると、有効になりません。 [編集中に変更を追跡する]チェックボックスをオフにして[OK]をクリックすると、Excelもブックの共有を解除します。

  • トラックの変更がオンになっているブックから始めて、[ツール]、[ツール]の順に選択した場合。変更の追跡| [変更を強調表示]、[編集中に変更を追跡する]チェックボックスがオンになっているはずです。チェックボックスをオフにして[OK]をクリックすると、Excelはブックの共有を解除します。

  • トラックの変更がオンになっているブックから始めて、[ツール]、[]の順に選択した場合。 [ブックを共有する]、[複数のユーザーによる変更を同時に許可する]チェックボックスがオンになっています。 (覚えておいてください。トラックの変更がオンの場合、ブックは自動的に共有されます。)チェックボックスをオフにして[OK]をクリックすると、共有がオフになり、トラックの変更機能がオフになります。

これがすべて混乱しているのは不思議ではありませんか?トラックの変更をオフにしてワークブックを共有する最も簡単な方法は、トラックの変更をオフにしてからワークブックを保存することです。これにより、シングルユーザーモードで保存されます。その後、ブックを共有して再度保存できます。 4つの簡単な手順(追跡をオフにする、ブックを保存する、ブックを共有する、ブックを保存する)を実行すれば、目的の場所に正確にアクセスできます。ただし、[ツール] | [ツール]を選択した場合は注意してください。変更の追跡|変更を強調表示すると、変更の追跡がまだオンになっているように見えます。チェックボックスを無視して、[キャンセル]をクリックします。この時点ではオンになっていません。

目的の結果をより速く達成する唯一の方法は、マクロを使用することです。

次のマクロは、今説明した手順を自動化します。

Sub KeepShared()

Dim sFile As String     Dim sMsg As String     Dim iUsers As Integer     Dim iAnswer As Integer

With ActiveWorkbook         If .MultiUserEditing Then             sFile = .Name             iAnswer = vbYes             iUsers = UBound(.UserStatus)

If iUsers > 1 Then                 sMsg = sFile & " is also open by " & _                     iUsers - 1 & " other users:"

For x = 2 To iUsers                     sMsg = sMsg & vbCrLf & .UserStatus(x, 1)

Next                 sMsg = sMsg & vbCrLf & vbCrLf & "Proceed?"

iAnswer = MsgBox(sMsg, vbYesNo)

End If

If iAnswer = vbYes Then                 .ExclusiveAccess                 .SaveAs Filename:=sFile, AccessMode:=xlShared             End If         End If     End With End Sub

マクロは、.MultiUserEditingプロパティをチェックして、ブックが共有されていることを確認することから始まります。そうである場合、マクロは、ブックが現在複数のユーザーによって使用されているかどうかを確認します。そうである場合は、続行するかどうかを確認するメッセージが表示されます。そうした場合(または、現時点でブックを開いているユーザーが複数いない場合)、ブックは排他的アクセス(シングルユーザー)に設定され、共有モードで保存されます。ブックを排他的アクセス用に設定すると、トラック変更機能もオフになります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2511)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。