エクセルファイルを保存する際、マクロを保持したままにしておくとファイル容量が大きくなってしまします。
そのため、多くの関係者にファイル転送をする際は、マクロを削除しておくのが望ましいでしょう。
しかし、せっかくマクロをつくって効率化しているのに、毎回マクロ機能なしファイルとして保存したり、ファイル名を変更していくのは非常に面倒ですよね。
というわけでこの記事では、マクロ機能を削除しつつ、任意の名前のファイル名で保存するという一連の流れを自動化する方法についてご紹介します。
一度作っておくと非常に便利ですので、ぜひご活用ください。
それではさっそくやっていきましょう!
題材確認
まずは普段使っているマクロファイルを準備します。
今回はtemplate.xlsmというファイルで保存しています。
このファイルの中には
任意の処理内容が記述されているtemplateと、今回実行するマクロを削除してファイル名を変更するマクロであるDelete_Macroという二つのマクロが記述されています。
これらのマクロを、マクロ処理によって削除しつつ、別のファイル名に変更してみましょう。
マクロ機能の削除コード
Delete_Macroの中には以下のような処理が記述されています。
Sub Delete_Macro()
Dim new_file As Variant
Application.DisplayAlerts = False
new_file = Application.InputBox("新しいファイル名を入力してください")
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & new_file & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
実際にやっている処理内容としては
①新しいファイル名を入力してもらう。
②①で決めたファイル名に変更し、さらにマクロ機能なしファイルとして保存
たったのこれだけです。
これをあなたが普段使っているテンプレートマクロに組み込んでおくだけで、
〇マクロを削除して保存
〇ファイル名の変更
これらを一瞬で行うことが可能になります。
処理内容の確認
※テンプレートとして実行しているマクロ処理が終わった段階を想定しています。
まずは先ほど作ったDelete_Macroを実行します。
すると以下のようにインプットボックスが現れます。
ここに入力した名前がマクロ機能削除後のファイル名になります。
ファイル名を入力し、OKを押します。
するとエクセルのファイル名がいつの間にか先ほど入力したものに入れ替わっています。
そして拡張子も.xlsmから.xlsxに変化しています。
この状態から一度このファイルは閉じてください。
そしてもとのファイルが置いてあった場所に先ほど指定した名前のエクセルファイルが作成されているはずです。
このファイルの中のマクロを確認してみてください。
最初にあった二つのマクロは削除されているはずです。
おわりに
というわけで今回はマクロ機能を削除するマクロをご紹介しました。
必要に応じてご活用いいただけると幸いです。
このブログではエクセルを中心として、様々な業務効率化スキルを紹介しています。
■日々の業務の生産性を上げたい
■早くかえって子供と遊びたい
こんな人はぜひ他の記事も読んでみてください。
最後に・・・
このブログはブログ村に参加しています。
この記事が役にたった、今後もいろんなスキルを紹介してほしい、という方は以下のボタンをポチって頂けると私のモチベーションがあがりますのでよろしくお願いします。
また、Twitterもやっていますので興味があれば覗いてみてください。
それではまた!!
コメント