こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?

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

投稿日時 - 2006-05-22 14:33:25

QNo.2167570

すぐに回答ほしいです

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

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

投稿日時 - 2006-05-22 16:09:38

お礼

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

投稿日時 - 2006-05-22 17:35:35

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

エクセル2003以降はセキュリティの問題からVBAでVBAのモジュールをいじれなくなったと聞いています。
なので、現在は「シートの移動またはコピー」を使って複製しているのでしょうから、それを、新しいブックのワークシートにコピー&ペーストする方法に変えればいいと思います。単に数値や文字データだけであれば「値」貼り付けでボタン等も排除できます。数式や書式もコピペしたければ「数式貼り付け」と「書式貼り付け」でOKです。

投稿日時 - 2006-05-22 15:56:58

ANo.1

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

投稿日時 - 2006-05-22 15:08:50

あなたにオススメの質問