基本的な保存方法
最も簡単な方法は、ファイル形式を変更して保存することです:
.xlsx
形式で保存することで、自動的にVBAコードが除外されます- 保存後にファイルを閉じて再度開く必要があります
高度な保存テクニック
値のみの保存方法
- すべてのシートの内容を値として保存:
' Subroutine: SaveWithoutCode
' Purpose: Save the workbook without macros by converting it to .xlsx format
Sub SaveWithoutCode()
Dim ws As Worksheet
Dim newFilePath As String
Dim originalCalculation As XlCalculation
Dim originalScreenUpdating As Boolean
Dim originalDisplayAlerts As Boolean
' 現在のExcel設定を保存
originalCalculation = Application.Calculation
originalScreenUpdating = Application.ScreenUpdating
originalDisplayAlerts = Application.DisplayAlerts
' 設定を変更して処理速度を向上
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo ErrorHandler
' 各シートのUsedRangeを値として貼り付け
For Each ws In ThisWorkbook.Worksheets
With ws.UsedRange
.Value = .Value
End With
Next ws
' 新しいファイル名とパスを設定
newFilePath = ThisWorkbook.Path & "\" & "NewFile.xlsx"
' マクロなしの形式で保存
ThisWorkbook.SaveAs Filename:=newFilePath, _
FileFormat:=xlOpenXMLWorkbook, _
CreateBackup:=False
MsgBox "マクロを削除した新しいファイルを保存しました: " & newFilePath, vbInformation
GoTo Cleanup
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbExclamation
Cleanup:
' 元のExcel設定を復元
Application.Calculation = originalCalculation
Application.ScreenUpdating = originalScreenUpdating
Application.DisplayAlerts = originalDisplayAlerts
End Sub
CSVフォーマットでの保存
CSVフォーマットで保存すると、以下の効果があります:
- すべての数式が自動的に値に変換されます
- すべてのVBAコードが削除されます
- すべての書式設定が削除されます
注意点
- 重要なファイルは必ずバックアップを作成してから作業を行ってください
- 元のマクロを保持したい場合は、コピーを作成してから変換作業を行うことをお勧めします
- リンクされたデータがある場合は、データタブからリンクを解除する必要があります