ブックを保存するには、次のような命令があります。
次のコードは、アクティブブックを上書き保存します。
Sub Sample1()
ActiveWorkbook.Save
End Sub
すでに名前を付けて保存されているブックでしたら、上書き保存されます。もし、まだ保存されていないブックに対してSaveメソッドを実行するとカレントフォルダに「Book1.xlsx」などの名前で保存されます。このとき使用される「Book1」などの名前は、新規ブックを開いたときExcelが便宜的につける名前です。
では、カレントフォルダに、すでに同名のブックが存在していたらどうでしょう。たとえば、カレントフォルダに「Book1.xlsx」が存在していて。現在のアクティブブックが、まだ保存していないブックで、便宜的な名前が「Book1」だったようなケースです。こうした場合、Saveメソッドを実行すると

という確認メッセージが表示されます。選択肢は、[はい]ボタン、[いいえ]ボタン、[キャンセル]ボタンの3つです。[はい]ボタンをクリックすれば、もちろん上書き保存されます。しかし、[いいえ]ボタンか[キャンセル]ボタンをクリックすると、エラーになります。

これは、Saveメソッドが「ブックを保存する」という自分の仕事を達成できなかったという意味のエラーです。このエラーに対応するには、2つの考え方があります。
1は、意外と手間がかかります。たとえば、次のような感じです。
Sub Sample2()
Dim Target As String, re As Long
If ActiveWorkbook.Path = "" Then
''まだ保存されたことがないブック
Target = CurDir & "\" & ActiveWorkbook.Name & ".xlsx"
If Dir(Target) <> "" Then
re = MsgBox("この場所に'" & ActiveWorkbook.Name & ".xlsx'" & _
"という名前のファイルが既にあります。置き換えますか?", _
vbInformation + vbYesNoCancel + vbDefaultButton2)
If re = vbYes Then
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
End If
Else
ActiveWorkbook.Save
End If
Else
''すでに保存されたブック
ActiveWorkbook.Save
End If
End Sub
対象のブックが、まだ保存されたことがないブックかどうかを判定するにはWorkbookオブジェクトのPathプロパティが空欄かどうかを調べます。Savedプロパティは、ブックに変更が加えられて、その変更が保存されたかどうかを返すプロパティですので、新規ブックで何も編集していない状態ではTrueになります。
上記のマクロでは、まだ完璧ではありません。拡張子を「xlsx」と決め打ちしていますが、もちろんこれはExcel 2007以降です。Excel 2003までは「xls」を指定しなければなりませんが、Excelのバージョンで拡張子を使い分けるだけでは不安が残ります。Excel 2007でも、ブックを保存する「標準のブック形式」が、もしかすると「97-2003ブック」に設定されているかもしれないからです。
こんなときは、2の「エラーを無視する」方が簡単で確実です。
Sub Sample3()
On Error Resume Next
ActiveWorkbook.Save
If Err.Number > 0 Then MsgBox "保存されませんでした"
End Sub
Saveメソッドを実行する前に、On Error Resume Nextでエラーを無視します。Saveメソッドを実行して、もしユーザーが[いいえ]ボタンか[キャンセル]ボタンをクリックするとエラーが発生します。そこで、直後にErrオブジェクトを調べて「エラーが発生したどうか」を判定します。