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

下記3つの、プロシージャを組み合わせて、下記のやりたいことをやりたいのですが、うまくいきません。
どうかご教授の程よろしくお願いいたします。

excelは2000です。

○やりたいこと
今現在開いているファイルの、コピーをデスクトップに保存して、その保存したブックのマクロ(標準モジュールと、コマンドボタン)を削除したい。

○自分でやろうとすると
コピーをデスクトップに保存すると、コピー元のファイルが勝手に閉じてしまい、コピー先のファイルのマクロを削除できない。


'■デスクトップにコピー保存
Sub copysave()
Dim 場所 As String
場所 = CreateObject("WScript.Shell").SpecialFolders("Desktop")
ActiveWorkbook.SaveAs Filename:=場所 & "\" & Format(Date, "yyyymmdd") & "○◆△.xls"
End Sub

'■標準モジュールの削除
Sub DelModule()
Application.VBE.ActiveVBProject.VBComponents.Remove _
  Application.VBE.ActiveVBProject.VBComponents("Module1")
Application.VBE.ActiveVBProject.VBComponents.Remove _
  Application.VBE.ActiveVBProject.VBComponents("Module2")
End Sub

'■CommandButtonの削除
Sub DelCommandButton()
Dim c As Excel.OLEObject
For Each c In Worksheets(1).OLEObjects
  If TypeOf c.Object Is Msforms.CommandButton Then
c.Delete
End If
Next
End Sub

A 回答 (1件)

オリジナルブックの標準モジュールに,次のマクロを登録してある。



#オリジナルブックの全シートを複製する
#オリジナルブックの標準モジュールは置き去りにする
#オリジナルブックの1枚目のシートにあるControlツールボックスを全て削除する
 (そうでない場合は,ご質問に掲示されたマクロを流用する)


sub macro1()
 dim myPath as string
 dim myFile as string
 mypath = createobject("WScript.Shell").specialfolders("Desktop") & "\"
 myfile = format(date, "yyyymmdd") & "xyz.xls"

 thisworkbook.worksheets.copy
 activeworkbook.worksheets(1).oleobjects.delete
 activeworkbook.saveAs filename:=mypath & myfile
end sub
    • good
    • 0
この回答へのお礼

keithin様

完璧なお答えでした。
ありがとうございました。

お礼日時:2011/09/16 14:30

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