Excel VBAを使用してファイルを「名前を付けて保存」ダイアログで保存する際、VBAコードが含まれるファイルが保存されることがあります。これは、保存するファイル形式や保存時の設定に関する問題が影響している可能性があります。本記事では、この問題を解決するための方法について説明します。
VBAコードを外して保存する基本的な方法
ExcelでVBAコードを含むワークブックを保存する際、VBAコードが残ってしまう原因として、保存するファイル形式の選択肢があります。通常、Excelのマクロを含んだファイルは、.xlsm形式で保存されます。しかし、マクロなしのExcelファイルとして保存したい場合、.xlsx形式で保存する必要があります。
以下に示すのは、VBAコードを外して、名前を付けて保存ダイアログを使用してマクロなしで保存する方法です。
コード例:VBAを外して保存する手順
次に、マクロを外した状態でファイルを保存するコードの例を示します。
確認 = MsgBox("名前を付けて保存しますか?", vbInformation Or vbYesNo) If 確認 = vbYes Then ' アクティブシートを新しいブックにコピー ActiveSheet.Copy Set NewWorkbook = ActiveWorkbook ' 保存ダイアログを表示してファイルパスを取得 filePath = Application.GetSaveAsFilename( _ InitialFileName:="book1.xlsx", _ FileFilter:="Excelファイル (*.xlsx), *.xlsx") ' 新しいブックを指定された名前で保存 NewWorkbook.SaveAs filePath, FileFormat:=xlOpenXMLWorkbook End If
このコードでは、ActiveSheet.Copyで現在のシートを新しいワークブックにコピーし、ファイル保存ダイアログで.xlsx形式で保存します。重要なのは、SaveAsメソッドのFileFormatにxlOpenXMLWorkbookを指定していることです。これにより、マクロを含まない.xlsx形式で保存されます。
マクロが含まれていないファイルを保存するための注意点
マクロを含むExcelファイル(.xlsm形式)を保存する際、VBAコードが残る問題に直面することがあります。その場合、保存時にFileFormatを適切に指定することが重要です。特に、マクロを無効にした.xlsx形式で保存したい場合、FileFormat:=xlOpenXMLWorkbookを使用することで、VBAコードを外すことができます。
また、保存ダイアログを使用する際には、マクロなしのファイル形式(.xlsx)を選択するようにしてください。
保存ダイアログの使い方とファイル形式の選択
名前を付けて保存ダイアログを表示する際、ユーザーがファイルの保存先とファイル名を指定できるようにすることができます。その際、Excelでは以下のようにFileFilterを指定することで、ユーザーに対してどのファイル形式で保存するかを選ばせることができます。
filePath = Application.GetSaveAsFilename( _ InitialFileName:="book1.xlsx", _ FileFilter:="Excelファイル (*.xlsx), *.xlsx")
上記のコードで、ユーザーは.xlsx形式を選択することができ、この形式で保存されるため、VBAコードが含まれない新しいワークブックが作成されます。
まとめ
VBAコードを外してExcelファイルを保存するためには、ファイル保存時に正しいファイル形式(.xlsx)を指定することが不可欠です。保存ダイアログを利用し、適切なFileFormatを指定することで、マクロなしのファイルが生成されることが確認できます。これにより、VBAコードを含まない純粋なExcelファイルが作成されます。
コメント