• 締切済み

プロジェクトロックしてあるシートをコピーしてもマクロを見られないようにしたい

プロジェクトロックしてあるブックのシート(シートモジュールにマクロあり)を他ブックへコピーした場合 コピー先のブックでそのシートモジュールに書いてあるマクロが見れてしまうのですが、プロジェクトロックを保持して(?)コピー先でもマクロを見られないようにする方法があればご教授願います。 よろしくお願いします。

みんなの回答

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

こんにちは。 ちょっと、それは、どう考えても無理な相談だかなっておもいます。好事家の間では、不可能とは言わないでしょうけれども、それ以上に、相手のブックのプロジェクトをロックしてまったら、まずいでしょうね。逆に、それをされたら、私なら相手の人に対してクレームをします。そういう行為には、万が一にも、受けた側のリスクを予想させられるからです。出来れば、KenKenSPさんのご指摘のように、イベントマクロならThisWorkbook 等にいれ、シートのマクロは付けないほうがよいと思います。シートのマクロというのは、働きとして、概ね特殊な位置にあるものだと思います。 >配布先でそのシートを配布先管理のブックへコピーするのですが、 >やっつけマクロが書いてあって恥ずかしいので見られないようにしたいのです。。。 問題は、ここでしょうね。見られても恥ずかしくないマクロにするか、動けばよいと、開き直るしかないのではありませんか。プロの方でも、全国に配ってから後でお客さんから指摘され、信じられないようなミスをしたコードを収拾することがあるくらいですから。 余計なお世話かもしれませんが……。

hxhgon
質問者

お礼

Wendy02さんありがとうございます! 私の作ったシートを配布先のブック(マクロ一切なし)にコピーし、 私のシートのマクロを利用してブック全体の集計等を行うのですが、 やっぱり私のシートだけをロックするのは無理のようですね・・・(;´Д`) ご指摘の通り、配布先にリスクは与えられないので ここは開き直ります(`・ω・´) 汚いソースがなんぼのもんじゃい!と。 どうもありがとうございました!

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

イベントプロシージャだけなら ThisWorkbook モジュールで 置き換え可能です。コントロールツールボックス等を使って いる場合は、フォームに置き換え、標準モジュールにコード を移すことでシートモジュール上のコードは消去できます。 が。。。。Σ(゜Д゜) そもそも、そのシートをコピーした後も VBA でプログラム した機能はそのまま残したいのですよね。。。? だとしたら、無理かなと思います。 最後の手段で、きれいにコードを整形してみては?(;・∀・)  # ↑回答になってないですね。すみません。  # 識者の回答を待ってみて下さい。

hxhgon
質問者

お礼

KenKen_SPさんありがとうございます! >そもそも、そのシートをコピーした後も VBA でプログラム >した機能はそのまま残したいのですよね。。。? そうなのです。。。 >だとしたら、無理かなと思います。 うう。。。やっぱりダメっぽいですね・・・(´;ω;`)ウッ… がんばってキレイなコードに直そうと思います。 おかげ様で腹をくくる決意ができました(笑) どうもありがとうございました!

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

ブックの保護機能を使って「シート構成」を保護してみては?

hxhgon
質問者

補足

迅速な回答ありがとうございます。 私の説明不足で申し訳ないのですが、 私が作ったシート(マクロつき)を配布し、 配布先でそのシートを配布先管理のブックへコピーするのですが、 やっつけマクロが書いてあって恥ずかしいので見られないようにしたいのです。。。 パスワードをかけて見れないようにするぐらいで十分なのですが、 コピー先のブックでも継続してシートのマクロを見れない状態にする方法はありませんでしょうか? お手数おかけしますが、よろしくお願いします。