• ベストアンサー

エクセルで保護を掛けたのですが

例えば、行列でコピーをされて違うシートに貼り付けたら保護は生かされないですよね? 極論言えば、コピーもされたくない場合のマクロ等ってありますか?出来れば重くならない方法で・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 >マクロは無効にされたらアウトだし、別のブックを同時に開いて、 > =[ブック名.xls]シート名!A1 このぐらいは、マクロを書ける人なら、簡単にできるはずですが、今は、ヒントだけにしておきます。 Window のプロテクトを、Sheet プロテクトとは別にします。 開いた時に、一旦、  Window プロテクトを解除して シートの Visible = xlSheetVeryHidden Window プロテクトにしてから、そのブックを保存して、それから、次に、もう一度、Window プロテクトを解除して、  シートをVisible = xlSheetVisible Window プロテクトをします。 ブックを閉じるときは、 Saved =True にさせておいて、BeforeSave イベントをCancel =True を置いておきます。 そうすれば、なかなか、簡単には、複製を作ることもままならないはずです。PrintScreenを使うという意見もありますよね。こんどは、API の RegisterHotKey を使います。 ただし、VB Editor は、ロックしてあることが条件ですが、「一定の人に渡すこと」と、「コピーしてはいけません」で話が通じない人には、渡さないことでしょうね。

tomtom0628
質問者

お礼

丁寧な御指導ありがとうございました。 なかなか複雑な次元になってしまうんですね? 一旦、アドバイスの内容で取り組んでみます。。

その他の回答 (3)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

閲覧のみ可としてデータは使われないようにするって事なら、私は難しいと思いますが、、、 マクロは無効にされたらアウトだし、別のブックを同時に開いて、  =[ブック名.xls]シート名!A1 でもデータは持ってこれちゃいます。 また別ブックからマクロでコピーも出来ちゃいますし。

tomtom0628
質問者

お礼

丁寧な御指導ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 このようにすればよいと思います。 シート1 の場合 シート1 の場合 Private Sub Workbook_Open()   With Worksheets("Sheet1")    .Protect Password:="abc", UserInterFaceOnly:=True    .EnableSelection = xlUnlockedCells   End With End Sub

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

シートの保護をかける際にロックされたセルの範囲選択のチェックボックスをオフにされてはいかがでしょうか

tomtom0628
質問者

お礼

丁寧な御指導ありがとうございました。

関連するQ&A

専門家に質問してみよう