- ベストアンサー
VBAでマクロを消すコマンドがありますか
Sheet1に「コピー」ボタンを置き、クリックすると"Sheet1"のコピー"Sheet1 (2)"を作成するマクロを作成しました。 このあと、"Sheet1 (2)"にコピーされた全てのボタンとマクロを削除したいのですが、 ボタンの削除はうまくできましたがマクロが残ってしまいます。 これをやる目的は、Sheet1でいろいろ編集した帳票をReadOnlyの保存版を作って残したいということです。 ボタンが無くなるので"Sheet1 (2)"のマクロは使えなくなり、目的は達成しているのですが、できればごみとなった"Sheet1 (2)"のマクロを消したいのです。 VBAの記述内でマクロを消去することはできるのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 もともと、セル全体をコピーすれば、マクロはコピーされません。 たぶん、シートそのものをコピーする、こんな内容なのでしょうか? Me.Copy After:=Sheets(ThisWorkbook.Worksheets.Count) 以下のようにすれば、表面だけをコピーするコードはコピーされません。 例: Private Sub CommandButton1_Click() Me.Cells.Copy Worksheets.Add after:=Sheets(ThisWorkbook.Worksheets.Count) ActiveSheet.PasteSpecial xlPasteValuesAndNumberFormats '値と書式 ActiveSheet.Range("A1").Select End Sub それがいやらなら VBComponent.CodeModule.DeleteLines を使います。
その他の回答 (1)
- olive_surf
- ベストアンサー率27% (9/33)
こんにちは。 sheet(1)にマクロを記述するのではなく、標準moduleを追加して、そこにマクロを記述すれば、目的通りになりませんか?
お礼
さっそくのご回答、ありがとうございます。 できるだけ標準moduleにマクロを記述しているのですが、 event procedure など各シートに固有なマクロははずせませんでした。
お礼
すばらしい! おっしゃるとおりCopyメソッドを使っていましたが、 この方法だとコピースピードも早いし、申し分なしですね。 初めて見るコマンドもいろいろあって勉強になりました。 ありがとうございます。