- 締切済み
VBAでのマクロの削除方法について教えてください。
ACCESS2000のVBAから、excelのThisWorkbookに書かれたVBAマクロ「Sub Workbook_BeforeSave」を削除したいのですが、うまくいきません。どなたか方法を教えてください。よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- dsuekichi
- ベストアンサー率64% (171/265)
ANo1です。 > ProcOfLineなどやってみたが、 すいません。「ProcOfLine」ではなく、 「ProcCountLines プロパティ」 (http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acproProcCountLines.asp) の間違いです。 モジュールの特定方法("ThisWorkbook"の特定)までは、ANo2のimogasiさんの考え方と同じです。 #対象の「VBProject」を特定し、対象モジュールを特定する。 その後、「ProcBodyLine プロパティ」で、「Workbook_BeforeSave」が何行目から始まるか調べ、 「ProcCountLines プロパティ」で、「Workbook_BeforeSave」が何行あるか調べ、 「DeleteLines メソッド」で、該当箇所(指定行目から指定行数)を削除すればよいと思います。 > VBでしか使えずとかが原因かどうか、うまくいかなかった。 ExcelVBAでも使えるはずですけど・・・ #ちなみに私はVBSで試してみました。AccessVBAでも多分使えると思いますけど・・・
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test03() With ThisWorkbook.VBProject.VBComponents .Remove .Item("Module3") End With End Sub というのをWEBで見つけた。エクセル実行すると、Module3は削除できた。Module2にこのコードは置いて実行した。 しかしその中のプロシージュアー名を指定しての削除が判らなかった。 いま既回答で、良いのを教えていただいたとProcOfLineなどやってみたが、VBでしか使えずとかが原因かどうか、うまくいかなかった。
- dsuekichi
- ベストアンサー率64% (171/265)
どういうコードを書いて、どう「うまくいかない」のでしょうか? #エラー発生?想定外の箇所を削除? とりあえず、 「ProcBodyLine プロパティ」 (http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acproProcBodyLines.asp) 「ProcOfLine プロパティ」 (http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acproProcOfLine.asp) 「DeleteLines メソッド」 (http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acmthDeleteLines.asp) この辺りを使えばできそうですが・・・