• 締切済み

VBAでのマクロの削除方法について教えてください。

ACCESS2000のVBAから、excelのThisWorkbookに書かれたVBAマクロ「Sub Workbook_BeforeSave」を削除したいのですが、うまくいきません。どなたか方法を教えてください。よろしくお願いいたします。

みんなの回答

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

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)
回答No.2

Sub test03() With ThisWorkbook.VBProject.VBComponents .Remove .Item("Module3") End With End Sub というのをWEBで見つけた。エクセル実行すると、Module3は削除できた。Module2にこのコードは置いて実行した。 しかしその中のプロシージュアー名を指定しての削除が判らなかった。 いま既回答で、良いのを教えていただいたとProcOfLineなどやってみたが、VBでしか使えずとかが原因かどうか、うまくいかなかった。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

どういうコードを書いて、どう「うまくいかない」のでしょうか? #エラー発生?想定外の箇所を削除? とりあえず、 「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) この辺りを使えばできそうですが・・・

関連するQ&A