- ベストアンサー
Excel:VBAブック保存時にマクロをはずずには
すでにマクロが組まれているファイルを、名前をつけて別のファイルに保存するときに、 新しく保存するファイルからはマクロをはずして保存させるにはどの様にしたら良いのでしょうか。 名前をつけて保存することも、VBAで動作させます。 ファイル保存時ではなくとも、マクロをはずずVBAを教えてください。 何卒アドバイスを下さいますよう宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こちらを参考にされては? 井上治氏の マクロを除いた配布用ブックを作成する。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_200.html
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17070)
こういう話題には、 ・マクロを無効にする ・マクロコードを削除する などがあるが、本質問は後者として 下記コードを入れるブックを決めて、その標準モジュールに Sub test01() Workbooks.Open "XXXX.xls" Dim objVBCOMPO As Object For Each objVBCOMPO In ActiveWorkbook.VBProject.VBComponents With objVBCOMPO.CodeModule If .CountOfLines <> 0 Then .DeleteLines 1, .CountOfLines End With If (objVBCOMPO.Type = vbext_ct_StdModule Or objVBCOMPO.Type = vbext_ct_MSForm) Then ActiveWorkbook.VBProject.VBComponents.Remove objVBCOMPO End If Next objVBCOMPO Set objVBCOMPO = Nothing End Sub これは http://chaichan.web.infoseek.co.jp/vbtips/VBMemo2006081403.htm のコードに一行加えたものである。 "XXXX.xls"は>名前をつけて別のファイルに保存した、ブックである。 ーーー >Microsoft Visual Basic Applications Extensibility の参照設定が必要と思う。WEB記事に対しApplicationsが正しいようだ。チェックが付いてなくても動いたが、正しいかどうか不知。 ーーー これらは自己責任でやること。コピーしたものを対照にして、良く結果を検討し、変更後の保存は慎重にするべきである。 マクロをプログラムでいじくるのは、勧められた話ではない。質問者の技量はわからないが、何かわからない場合に、こういうWEB照会も習慣として、して無いレベルの人は、やらないほうが良かろう。 コードが削除されると、普通のシートの操作などの際に、エラーが発生したりする場合も考えられるので、本来はシートの状態も含めて、中身を十分検討のうえ、手動で削除するべきでしょう。(一例でユーザー設定のボタンが作られていた場合で、OnActionで何か処理がされる場合やユーザー作成関数が在ったなどが一例) ーー Module1の解放などまでは上記コードではやってない。 ーーー また http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9cz48.html >マクロを含むブックを別名で保存すると、当然のことながら、モジュールシートが付いた状態で保存されます。 しかし、右図のようにシートの[移動またはコピー]で[新しいブック]に[コピーを作成する]して、その新しいブックに[名前を付けて保存]すればモジュールシートは付きませんから、・・ これも試してください。 ーーー http://www.vbalab.net/vbaqa/data/excel/log/tree_698.htm にもコードがありました。