• ベストアンサー

VBAでマクロを消すコマンドがありますか

Sheet1に「コピー」ボタンを置き、クリックすると"Sheet1"のコピー"Sheet1 (2)"を作成するマクロを作成しました。 このあと、"Sheet1 (2)"にコピーされた全てのボタンとマクロを削除したいのですが、 ボタンの削除はうまくできましたがマクロが残ってしまいます。 これをやる目的は、Sheet1でいろいろ編集した帳票をReadOnlyの保存版を作って残したいということです。 ボタンが無くなるので"Sheet1 (2)"のマクロは使えなくなり、目的は達成しているのですが、できればごみとなった"Sheet1 (2)"のマクロを消したいのです。 VBAの記述内でマクロを消去することはできるのでしょうか。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 を使います。

catecholamine
質問者

お礼

すばらしい! おっしゃるとおりCopyメソッドを使っていましたが、 この方法だとコピースピードも早いし、申し分なしですね。 初めて見るコマンドもいろいろあって勉強になりました。 ありがとうございます。

その他の回答 (1)

回答No.1

こんにちは。 sheet(1)にマクロを記述するのではなく、標準moduleを追加して、そこにマクロを記述すれば、目的通りになりませんか?

catecholamine
質問者

お礼

さっそくのご回答、ありがとうございます。 できるだけ標準moduleにマクロを記述しているのですが、 event procedure など各シートに固有なマクロははずせませんでした。

関連するQ&A