• ベストアンサー

エクセル:標準モジュールを一括削除して保存するVBA

No.2169774の関連質問になってしまいます。 よろしくお願いします。 ◆あるエクセルファイルの任意のシートを残して、その他のシートの一括削除をして、新しい名前で保存する方法をNo.2169774で教えていただきました。 ◆その同じもとのエクセルファイルの任意のシート以外の他のシートを削除するだけでなく、『VBAprojectで保護をかけている標準モジュールをすべて一括削除すること』は可能なのでしょうか? ◆目的は、任意のシートのみを残して、VBAの書き込みもすべて削除してしまい、第三者があらたにVBAを書き込むことを含めて自由に使用できるようにしたいのです。 質問がわかりにくければ申し訳ありません。どうか、よろしくご指導をお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

↓の作業をマクロの自動記録したら参考になるコードが得られます。 シートタブを右クリック ↓ 移動またはコピー ↓ 移動先ブック名→新規ブック コピーを作成するにチェック ↓ 新規ブックに名前をつけて保存

yastaro
質問者

お礼

2度にわたってご回答ありがとうございます。 発想を転換させることは大切ですね。 勉強になりました。大変ありがとうございました。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

こんばんは。 > 『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

yastaro
質問者

お礼

いつもありがとうございます^^ >セキュリティの問題でエクセル2003以降はマクロでモジュールをいじれなくなっている、と先ほどもお答えしたと思うのですが・・。 とは、ほかの方へのお答えだったのでしょうか? いずれにしても参考になりましたありがとうございました。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

前スレは見てないのですが、 残したいシートのみを 新規ブックとして保存してはいかがでしょう? そうすれば標準モジュールのコードは付いてきません。