プロが教える店舗&オフィスのセキュリティ対策術

VBAのマクロでシートのコピーをしたいのですが、元のシートにはVBAのコードが含まれています。コピーするのはデータだけのコピーが必要で、マクロ自体は必要ないのですが、それを削除するコードはどのように書いたらいいのでしょうか?
どうしてもコピーしたファイルを開くと「マクロが含まれています」という確認メッセージが出てしまうのですが、それもなくしたいのです。
シートにフォームのボタンが配置されている場合も同様に、そのボタン自体をなくした状態でコピーを行いたいのですが・・・。プログラムで行うのは不可能なのでしょうか?

A 回答 (3件)

No2です。


サンプルコードを書いてみました。
「オリジナル」という名前のシートを別ブックとしてコピペ保存します。

Sub サンプル()
Dim sc As Integer
sc = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー
Workbooks.Add 'ブック追加
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け
Sheets("Sheet1").Name = "コピー"
Application.CutCopyMode = False
Application.SheetsInNewWorkbook = sc
ActiveWorkbook.Close
ThisWorkbook.Activate
End Sub
    • good
    • 7
この回答へのお礼

サンプルコードまでどうもありがとうございました!
すごーく助かりました。
今日の午後は仕事がここで止まっていたのですが、すっきりしました!!

お礼日時:2006/05/22 17:35

エクセル2003以降はセキュリティの問題からVBAでVBAのモジュールをいじれなくなったと聞いています。


なので、現在は「シートの移動またはコピー」を使って複製しているのでしょうから、それを、新しいブックのワークシートにコピー&ペーストする方法に変えればいいと思います。単に数値や文字データだけであれば「値」貼り付けでボタン等も排除できます。数式や書式もコピペしたければ「数式貼り付け」と「書式貼り付け」でOKです。
    • good
    • 0

保存するマクロをそのブックではなくPERSONALブックに


保存すればシートのコピーするブックを開いても
確認メッセージは出ないのでそうすればどうでしょう?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A