![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
質問番号:5548045の関連質問です。
EXCEL2003VBA で、セキュリティ設定で『Visual Basic プロジェクトへのアクセス』にチェックを入れて、Module1に下記のように「モジュール解放」マクロを作成しましたが、Module1が削除されません。(1)を削除して、手動操作で変更を保存でファイルを閉じるとModule1も削除されます。
Module1の削除も全てマクロで行うやり方を教えてください。
With ThisWorkbook.VBProject.VBComponents
.Remove .Item("Module1")
.Remove .Item("Module2")
.Remove .Item("Module3")
End With
ActiveWorkbook.SaveAs Filename:="D:\TEST"
ActiveWorkbook.Close ・・・(1)
No.4ベストアンサー
- 回答日時:
>自分のファイルは残して、シート部分のみ別ファイルにしたかったので
それなら
ThisWorkbook.Worksheets.Copy
With ActiveWorkbook
.SaveCopyAs "D:\TEST.xls"
.Close False
End With
再度の回答有難うございました。
ちゃんと動作しました。
たった4行で処理できるなんて、驚きました。
年末の忙しい時に回答頂き、有難うございます。
時々「教えて!goo」は、利用させて貰っています。
今年も宜しくお願いします。
No.3
- 回答日時:
すみません
set oVBE as Application.VBE
これは
set oVBE = Application.VBE
の間違えです orz
マクロの最後
' 変更を反映
Workboos("Sample02.xls").Save
End Sub
の部分を
' 変更を反映
Workbooks("Sample02.xls").Close True
' Sample02.xlsがVBE上で残ってしまうため …
ActiveWorkbook.Save
End Sub
としたほうがいいようです
再度の回答有難うございました。
今度は、ちゃんと動きました。
年末の忙しい時に回答頂き、有難うございます。
時々「教えて!goo」は、利用させて貰っています。
今年も宜しくお願いします。
No.2
- 回答日時:
>EXCEL2003VBA で、セキュリティ・・・
EXCEL2003の環境が無いので確認できず別案
全シートを新ブックにコピーして元のブックと入れ替えれば
Sub Test()
Dim myName As String
With ThisWorkbook
myName = .FullName
.SaveAs Filename:="J:\Tmp.xls"
.Saved = True
.ChangeFileAccess Mode:=xlReadOnly
.Worksheets.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs myName
Application.DisplayAlerts = True
Kill "J:\Tmp.xls"
.Close False
End With
End Sub
回答有難うございます。
実際に動かしてみましたが、自分のファイルのマクロが削除されてしまいました。やろうと思っていたのは、自分のファイルは残して、シート部分のみ別ファイルにしたかったので、保存するときにD:\TESTを指定してやれば良いですね。
Moduleを削除するのではなくて、シート部分を別ファイルにコピーする。考えてみれば、その方法が確かに簡単ですね。
どうも、有難うございました。
No.1
- 回答日時:
自分自身を削除するのは無理かと思いますよ
最初に ActiveWorkbook.SaveCopyAs でマクロ抜きのブックを保存しておいてから 保存したブックを開き このブックを操作してマクロを抜いて もう一度変更を更新してみましょう
Sub DeleteMacro
' 変更後のマクロがわかるように変更
Application.VBE.VBProjects(1).Name = "Sample02"
ActiveWorkbook.SaveCopyAs "D:\Sample02.xls"
' 元に戻す
Application.VBE.VBProjects(1).Name = "VBAProject"
' マクロを削除するブックを開く
Workbooks.Open "D:\Sample02.xls"
dim oVBE as VBE, oProj as VBProject, oMod as VBComponent
dim n as Integer
set oVBE as Application.VBE
' 変更するブックのプロジェクトを取得
set oProj = oVBE.VBProjects("Sample02")
With oProj
for n = .VBComponents.Count to 1 step -1
set oMod = .VBComponents(n)
' 削除するモジュールの検査
if InStr( oMod.Name, "Module" ) then
.VBComponents.Remove oMod
end if
next
End With
' 変更を反映
Workboos("Sample02.xls").Save
End Sub
といった具合で …
ブックを開いたとき自動実行されるマクロなどがあって不具合があるなら
ブック名などの違いを検出してマクロが起動しないようにしておきましょう
回答有難うございます。
上記マクロを動かしてみましたが、下記の部分で「構文エラー」が出ました。
set oVBE as Application.VBE
エラーの原因が分かりませんので、教えて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- その他(プログラミング・Web制作) どうしてもエラーが解決できません。 1 2022/07/23 04:32
- Visual Basic(VBA) chromedriverのver-upで動作不安定となった 3 2022/07/07 11:32
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
VB2010でExcelの行をコピーして...
-
【ExcelVBA】指定の書式で、マ...
-
Excel マクロでファイル名を変...
-
フォルダ内の全ブックのシート...
-
他のBookのユーザー定義関数を使う
-
エクセル2007で、Application.R...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
VBA(エクセル)で教えて下さい...
-
VBA セル入力された日付データ...
-
【Excel VBA】ブックを複数開い...
-
マクロで新規BOOKを複数作成(...
-
すでに開いているブックのマク...
-
VBA、Excelのworkbook.open に...
-
エクセルマクロで、他ブックの...
-
excelマクロ、任意セルの値で名...
-
マクロエクセルのブロック解除
-
複数のデータ系列の線の太さを...
-
エクセルの指数を無効にしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
【Excel VBA】ブックを複数開い...
-
すでに開いているブックのマク...
-
EXCELマクロでxlsとxlsxを開く方法
-
フォルダ内の全てのBookに同じ...
-
excelマクロ、任意セルの値で名...
-
[Excel VBA] フォルダ内の複数...
-
personal.xlsの削除方法
-
EXCEL VBA起動時の処理
-
Excel VBAを後ろで動かす方法
-
VBA、Excelのworkbook.open に...
-
VBA セル入力された日付データ...
-
他のBookのユーザー定義関数を使う
-
Excelの一括印刷で通し番号をつ...
-
VBA ファイルの開き方
おすすめ情報