保護された Excel シート内のグラフとスライサーの選択を許可しますが、編集は許可しません。

保護された Excel シート内のグラフとスライサーの選択を許可しますが、編集は許可しません。

スライサーとグラフが含まれている Excel ファイルを共有したいと思います。ユーザーがスライサーを使用してフィルター処理を行い、グラフを選択してコピーできるようにしたいのですが、シートを保護してグラフとスライサーの編集を防止したいのです。私が
知る限り、オプションはグラフとスライサーをロックすることであり、その場合、シートが保護されているときはグラフとスライサーは編集できませんが、スライサーはフリーズされ、グラフはコピーできません (PrintScreen はオプションではありません)。または、それらをロック解除することであり、その場合、それらは使用可能になりますが、編集可能になります。
これを回避する方法はありますか?

答え1

2 つのオプションがあります。1 つは、VBA 対応のワークシートを選択し、VBA を使用して独自のロジックを追加する方法ですが、シートが VBA 対応であること、xlsmおよびエンド ユーザーがワークブックでマクロを有効にしている必要があります。ただし、この方法により、許可されたユーザーの操作を最適に制御できます。2 つ目の方法は、xlsxVBA を使用しない方法ですが、スライサーの削除やグラフの名前の変更など、ユーザーに対する一部の操作を拒否することはできません。

1) できるここで推奨されているように:

Private Sub Chart1_Click()     
    ActiveSheet.ChartObjects(1).CopyPicture
    MsgBox ("Chart copied to clipboard.  You can now paste this into another application.")        
End Sub

つまり、ワークブックをマクロを含む xlsm ワークブックに変換する必要があります。次に、グラフのクリック時にクリップボード アクションを処理するマクロを追加します。

2) より良い方法は、保護されたワークシートでチャート要素をロック解除したままにして、マクロでプロパティを変更する:

Sub macro()
ActiveChart.ProtectData = True
ActiveChart.ProtectFormatting = True
ActiveChart.ProtectSelection = False
End Sub

またはシート上のすべてのグラフの場合:

For Each i In ActiveSheet.ChartObjects
    i.Chart.ProtectSelection = False
    i.Chart.ProtectData = True
    i.Chart.ProtectFormatting = True 
Next i

この方法では、ワークブックを作成するときにマクロを使用しますが、ワークブック自体には VBA は含まれません。

グラフ用に別のシートを作成すると、パスワードで個別に保護できます。

Sub macro()
Dim newChart As Chart

Range("C9:C11").Select
Set newChart = ActiveChart

With newChart
.Protect Password:="pwd", DrawingObjects:=True, Contents:=True
.ProtectData = True
.ProtectFormatting = True
.ProtectSelection = False
.ChartObjects(1).Chart.ProtectSelection = False

   'setting other properties
End With

End Sub

スライサーについては、ロックを解除したままにして、ワークシートをロックするときに「ピボットテーブル レポートを使用する」をオンにする必要があります。

答え2

編集とは、グラフ自体の基礎となるデータまたはスタイルのみを意味しますか?

データのみをロックしたい場合は、保護されたシートにデータを置き(ピボットの使用、選択、並べ替えなども許可できます)、グラフを別のシートに置くことができます。

ここクリックするとグラフをコピーするマクロを使用することが提案されています。これは、グラフを含むシートも保護されている場合に使用できます。

答え3

読み取り専用モードを有効にしてみてください。これは Excel の機能 (保護されたビューとは別) だと思いますが、間違っているかもしれません。

関連情報