- ベストアンサー
エクセル:標準モジュールを一括削除して保存するVBA
No.2169774の関連質問になってしまいます。 よろしくお願いします。 ◆あるエクセルファイルの任意のシートを残して、その他のシートの一括削除をして、新しい名前で保存する方法をNo.2169774で教えていただきました。 ◆その同じもとのエクセルファイルの任意のシート以外の他のシートを削除するだけでなく、『VBAprojectで保護をかけている標準モジュールをすべて一括削除すること』は可能なのでしょうか? ◆目的は、任意のシートのみを残して、VBAの書き込みもすべて削除してしまい、第三者があらたにVBAを書き込むことを含めて自由に使用できるようにしたいのです。 質問がわかりにくければ申し訳ありません。どうか、よろしくご指導をお願い申し上げます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
↓の作業をマクロの自動記録したら参考になるコードが得られます。 シートタブを右クリック ↓ 移動またはコピー ↓ 移動先ブック名→新規ブック コピーを作成するにチェック ↓ 新規ブックに名前をつけて保存
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
こんばんは。 > 『VBAprojectで保護をかけている標準モジュールをすべて一括削除すること』は可能なのでしょうか? セキュリティの問題でエクセル2003以降はマクロでモジュールをいじれなくなっている、と先ほどもお答えしたと思うのですが・・。 第三者に渡すのであれば相手のバージョンは分からないですよね? 2000以前とわかっているのであれば以下をお試し下さい。 Sub TEST01() Dim Obj As Object For Each Obj In ThisWorkbook.VBProject.VBComponents With Obj If .Type = 1 Then Application.VBE.activeVBProject.VBComponents.Remove Obj End If End With Next Obj End Sub
お礼
いつもありがとうございます^^ >セキュリティの問題でエクセル2003以降はマクロでモジュールをいじれなくなっている、と先ほどもお答えしたと思うのですが・・。 とは、ほかの方へのお答えだったのでしょうか? いずれにしても参考になりましたありがとうございました。
- marbin
- ベストアンサー率27% (636/2290)
前スレは見てないのですが、 残したいシートのみを 新規ブックとして保存してはいかがでしょう? そうすれば標準モジュールのコードは付いてきません。
お礼
2度にわたってご回答ありがとうございます。 発想を転換させることは大切ですね。 勉強になりました。大変ありがとうございました。