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

Excel2003です。
あるExcelブック内にある複数のVBAオブジェクトを同時に解放したいのですが、
どうやってもオブジェクトを一つしか選択することが出来ません。

たくさんあるとかなり手間がかかってしまいます。
まさか、VBAの解放を行うためのプログラムをVBAで書かなければ出来ないのでしょうか?

A 回答 (2件)

小生の無知の恥をさらすのかもしれないが、あえて聞く。


>VBAの解放を行うためのプログラムをVBAで書かなければ出来ない・・
この質問はエクセルVBAの質問では無いのか?
操作で複数・多数のオブジェクトの解放をまとめてできないかと言うことか。
きっかけ・タイミングは?実行中は無いと思うが、ブックを閉じたときなどか?
ーー
VBAオブジェクト
具体的にはどういうオブジェクトか。OLEオブジェクト・コントロールや、図形・写真などが多数フォームやシートに貼り付けてあるということか。
ーー
>どうやってもオブジェクトを一つしか選択することが出来ません
とは具体的にどういうことですか。
ーー
貼り付けた図形の抹消のことなどではないのか。
(オブジェクト).DrawingObjects.Deleteのようなことか。
===
小生のレベルをはるか越えた上のレベルの質問かどうか判らない。
質問の書きぶりからそうではないようにもみえるが、
質問の補足を希望する。
    • good
    • 0
この回答へのお礼

すいません、オブジェクトではなく標準モジュールのことです。
複数の標準モジュールを一度に消す方法を教えて下さい。

お礼日時:2011/01/21 18:30

#1です。


エクセルVBAでは、ここまではあまりやることではないので、自信はないが、くれぐれもコピーファイルで確かめた上でやってください。
少数の例でテスト、
コピーファイルで確かめる
本番
の順で慎重に。
Module1に下記を入れます。
ーー
Module1と言う名以外のModuleを削除します。
MsgBox VBC.Nameの行は確認後削除してもよい。
ーーー
Sub test01()
Dim VBC
With ActiveWorkbook.VBProject
For Each VBC In .VBComponents
If VBC.Type = 1 Then
If VBC.Name <> "Module1" Then
MsgBox VBC.Name
.VBComponents.Remove VBC
End If
End If
Next VBC
End With

End Sub
ーー
VBComponents.Typeは
http://www.tech-archive.net/Archive/German/micro …
vbCompTypeModul = 1 'normales Modulのようです。
    • good
    • 0

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