2

別のシートでブックへの変更を追跡するVBAマクロを作成しようとしています。

これを手動で行う場合、コマンドの順序は、[ツール]>[変更の追跡]>[変更の強調表示]で、[ワークシートの分割]オプションを選択します。コマンドを2回繰り返す必要があります。1回目はトラッキングをインラインでアクティブにし、もう1回はトラッキングを別のシートに移動します。

マクロレコーダーを使用して、次のコードにたどり着きました。

With ActiveWorkbook
    .Save
    .KeepChangeHistory = True
    .HighlightChangesOptions When:=xlAllChanges
    .ListChangesOnNewSheet = True
    .HighlightChangesOnScreen = False
    .Worksheets("History").Select
End With

これを実行すると、HighlightChangesOptionsメソッドが失敗するというエラーが発生します。助言がありますか?

4

1 に答える 1

2

HighlightChangesOptions メソッドは、ブックが既に共有されている場合にのみ機能します。UI で HighlightChange をオンにすると、ワークブックが自動的に共有されますが、VBA ではそうではありません。

Application.DisplayAlerts = False
With ActiveWorkbook
    .SaveAs , , , , , , xlShared
    .KeepChangeHistory = True
    .HighlightChangesOptions When:=xlAllChanges
    .ListChangesOnNewSheet = True
    .HighlightChangesOnScreen = False
    .Worksheets("History").Select
End With

DisplayAlerts 呼び出しは、Excel が既存のワークブック自体を上書きしていることを警告するのを防ぎます。何が起こっているのかを確認するためだけに、その行をコメントアウトすることをお勧めします。

このコードは、共有ブックには存在できないことに注意してください。ワークブックを共有すると、コードの実行が停止し、エラーが発生します。別のブックまたはアドインに存在する必要があります。

于 2009-04-06T14:20:00.670 に答える